概述
1使用iterator可以使用自带的remove()删除元素,其他删除会报错;
2 增强for 底层实现是iterator;
3 for i=0;i<list.size();i++;删除会造成元素获取不到;
4 看来都不是线程安全了,本来以为iterator是iterator模式支持元素添加删除,看来不行啊
package xx.study.design.iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListFor {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator<String> iterator= list.iterator();
while (iterator.hasNext()){
String tem=iterator.next();
System.out.println(tem);
//必须使用这个进行删除 list.remove(tem)程序也会报错
//Exception in thread "main" java.util.ConcurrentModificationException
iterator.remove();
}
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println("增强for ");
for(String str:list){//底层是iterator
System.out.println(str);
//list.remove(str); 会报错
}
System.out.println(" for(int i=0;i<list.size(); i++){ --start=-");
for(int i=0;i<list.size(); i++){//删除时导致其他对象获取不到
System.out.println(list.get(i));
list.remove(list.get(i));
}
System.out.println("over");
}
}
输出:
a
b
c
d
增强for
a
b
c
d
for(int i=0;i<list.size(); i++){ --start=-
a
c
over
最后
以上就是时尚秋天为你收集整理的list集合for 与iterator区别的全部内容,希望文章能够帮你解决list集合for 与iterator区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复