我是靠谱客的博主 威武乌冬面,这篇文章主要介绍for遍历与iterator遍历的区别,现在分享给大家,希望可以做个参考。

for循环遍历

  • 一般适用于数组遍历有序集合遍历
    例子1:数组遍历
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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); } } }

例子二:有序集合遍历

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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();)

  • 一般用于集合遍历
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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遍历内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部