概述
for循环遍历
- 一般适用于数组遍历或有序集合遍历
例子1:数组遍历
public class ArrayDemo {
public static void main(String[] args) {
Student[] students=new Student[10];
for (int i=0;i<10;i++){
Student student = new Student(i,"小亮"+i,20);
students[i]=student;
}
printArr(students);
}
public static void printArr(Student[] s){
for (Student str: s) {
System.out.println(str);
}
}
}
例子二:有序集合遍历
public class ArrayListDemo {
public static void main(String[] args) {
List ls=new ArrayList();
ls.add("元素1");
ls.add("元素2");
ls.add("元素3");
ls.add("元素4");
forTest(ls);
iterTest(ls);
}
public static void forTest(List ls){
for(int i=0;i<ls.size();i++){
System.out.println(ls.get(i));
}
}
public static void iterTest(List ls){
Iterator iterator = ls.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
}
}
iterator遍历(Iterator 是一个接口,对collection进行迭代的迭代器。常用方法hasNext();next();)
- 一般用于集合遍历
public class CollectionDemo {
public static void main(String[] args) {
Collection coll=new ArrayList();
coll.add("劳斯莱斯");
coll.add("宾利");
coll.add("迈巴赫");
coll.add("宝马");
coll.add("奔驰");
coll.add("特斯拉");
iterCollection(coll);
}
public static void iterCollection(Collection coll){
//获得一个集合迭代器对象,迭代器的对象的指针是一去不复返的,只能遍历一次
//如果需要再遍历集合,可以再创建一个迭代器对象
//迭代器在遍历过程中不允许对集合添加删除变更操作(集合是不支持并发操作的),否则会报java.util.ConcurrentModificationException(并发修改异常)
Iterator iterator = coll.iterator();
while(iterator.hasNext()){
//获取元素
Object obj = iterator.next();
System.out.println(obj);
}
System.out.println("-----------再次遍历集合---------");
Iterator iterator2 = coll.iterator();
while(iterator2.hasNext()){
//获取元素
Object obj2 = iterator2.next();
System.out.println(obj2);
}
}
}
经本人试样得出下面几点总结:
-
1.iterato遍历集合时不能同时对集合做修改或增加之类,否则会报ConcurrentModificationException(并发修改异常)
-
2.listIterator.add(Object o):迭代器提供的这个add方法可以避免遍历时对集合更改引发的并发问题,但添加的时候对本次遍历不生效。
-
3.使用for循环动态遍历有序集合,边遍历边对有序集合操作,是可以的,不会抛出异常
-
4.使用增强for循环时,对数组操作也会报ConcurrentModificationException(并发修改异常)
最后
以上就是威武乌冬面为你收集整理的for遍历与iterator遍历的区别的全部内容,希望文章能够帮你解决for遍历与iterator遍历的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复