- LocCloud
-
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!如果使用 Iterator 来遍历集合中元素,一旦不再使用 List 转而使用 u200dTreeSet 来组织数据,那遍历元素的代码不用做任何修改,如果使用 for 来遍历,那所有遍历此集合的算法都得做相应调整。
比如以后你的代码改了,list不在是list接口了,而是set接口(没有get(i)方法),
这时你的代码改动就大了,for里面全部要重写,而你老大的代码几乎不用任何修改,当然这也牺牲了部分性能u200du200d
参考资料:http://bbs.c**.net/topics/250025827
*****************************************希望帮助到你!************************************************
如果我的回答对你有帮助,
请点击我的回答下方【选为满意答案】按钮
谢谢!
- 黑桃云
-
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
/*迭代器用于while循环
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}
*/
- 苏萦
-
public static void fun(){
ArrayList<Integer>list=new ArrayList<Integer>();
for(int i=0;i<15;i++){
list.add(Integer.valueOf((int)(Math.random()*100)));
}
Iterator<Integer> i=list.iterator();
while(i.hasNext()){
Integer element=i.next();
System.out.print(element+" ");
}//这个的用法,相当于下面的for-each
for(Integer e:list){
System.out.print(e+" ");
}
}
- Chen