黑马程序员技术交流社区
标题:
忘记了list 中的set 方法, 肯定是打开方式不对,
[打印本页]
作者:
boom_pm2.5
时间:
2016-11-18 23:07
标题:
忘记了list 中的set 方法, 肯定是打开方式不对,
上干货~
------------------------------------------------------------------------------------------------------手动分割线
在看题之前,我简单的说几句:
每次在我们学到新知识的时候一定不要忘记最简单的做法,
但是在学到新知识的时候,一定要合理运用
在什么都不知道的时候,感觉题好难,
在会做`一点的时候,感觉这题没有这么简单吧..
在robin老师跟我说了 list.set(index,element);这个方法的时候,
真的!!! 没有想到你是这样的题~
-----------------------------------------------------------------------------------------------------------手动分割线.
题文:定义一个方法swap()传入集合和两个角标使集合中元素交换位置
--------------------------------------------------------------------------------------------------------------手动分割线
代码区:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/*1.定义一个方法swap()传入集合和两个角标使集合中元素交换位置
思路:
a.定义一个临时变量, 记住其中一个元素
b.用第一个位置存放第二个位置上的元素
c.用第二个位置存放临时变量记住的元素*/
public class HomeWork01 {
public static void main(String[] args) {
List<Object > list = new ArrayList<>(); //使用List 中的方法.
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
System.out.println(list);
swap(list,0,1);
System.out.println(list);
}
public static void swap(List list,int x,int y){
//a.定义一个临时变量, 记住其中一个元素
Object obj = list.get(x);
Object obj2 =list.get(y);
// b.用第一个位置存放第二个位置上的元素
ListIterator lit = list.listIterator();
while (lit.hasNext()) {
Object obj3 = lit.next();
if (obj3==obj) {
lit.remove();
lit.add(obj2);
} else if (obj3==obj2) {
lit.remove();
lit.add(obj);
}
}
// c.用第二个位置存放临时变量记住的元素
}
}
---------------------------------------------------------------------------------------------------------------手动分割线.
总结:
我使用了,iterator 这个迭代器,然后进行先删除元素,然后在进行添加的做法
总体思路和listt.set(); 方法是一致的, 都是在添加和删除.
但是 使用List.set() 方法更为简单,
因为他是可以直接找到角标然后直接删除角标对应的元素
不像iterator 迭代器,是当前的位置, 毕竟做了循环.
最后说一句:
不是我不喜欢用快捷方式, 我是觉得我的打字速度还可以,
作者:
boom_pm2.5
时间:
2016-11-18 23:08
这道题,花费了 我30分钟在想 怎么删除元素,和他角标移动的问题.真的很痛苦.
还是多查查API 了, 毕竟 久病成医, 我相信我多差几次API 就会更好的理解 和掌握这门技术.
作者:
xss222
时间:
2016-12-7 13:20
66666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2