for()与iterator()遍历循环的区别,各自的特点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for()与iterator()遍历循环的区别,各自的特点?相关的知识,希望对你有一定的参考价值。

你好 ,
个人觉得这两个 在集合方面迭代时候是有区别的:
比如你要遍历一个集合,当满足某条件时候,删除一个元素,
如果用的是for循环,就用集合自带的remove(),而这样就改变了集合的Size()循环的时候会出错但如果把集合放入迭代器,既iterator
迭代可以遍历并选择集合中的每个对象而不改变集合的结构,而把集合放入迭代器,用迭代器的remove()就不会出现问题
参考技术A 个人觉得这两个 在集合方面迭代时候是有区别的:
比如你要遍历一个集合,当满足某条件时候,删除一个元素,
如果用的是for循环,就用集合自带的remove(),而这样就改变了集合的Size()循环的时候会出错但如果把集合放入迭代器,既iterator
迭代可以遍历并选择集合中的每个对象而不改变集合的结构,而把集合放入迭代器,用迭代器的remove()就不会出现问题。
参考技术B 他们各自有不同的特点,学多了就知道了。有些用for循环是不行的,比如HashMap的遍历就得用iterator。 参考技术C iterator万能方法,适合所以集合类。
for的话要每次自己定义
参考技术D for就是循环啊,iterator()是迭带输出。。

java中的Iterator与增强for循环的效率比较

  最近在优化代码时遇到了这个问题:Iterator与增强for循环到底哪个效率高?之前在学习的时候,好像记着老师说过遍历集合(如list)时,使用iterator好像正规一些,因为是专用的,但是运行效率问题确实不曾考虑,今天做了一个实验:对两者进行了简单的比较,得出的结论是增强for循环运行效率更高一些。但是我不确定这是否会代表全部情况,这里仅仅记录一下,做个参考,后期有新的认识再来补充,欢迎大家批评指正。

 1   public static void main(String[] args) {
 2         test();
 3     }
 4     
 5     public static void test() {
 6         
 7         List<Integer> list = new ArrayList<Integer>();
 8         int flag = 100000;
 9         int i=0;
10         while(i<flag) {
11             list.add(i);
12             i++;
13         }
14         
15         // iterator测试
16         long start = System.currentTimeMillis();
17             Iterator<Integer> iterator = list.iterator();
18             while(iterator.hasNext()) {
19                 System.out.print(iterator.next());
20             }
21         long end = System.currentTimeMillis();
22         System.out.println("iterator本次执行耗费了"+(end-start)+"毫秒");
23         
24         // 增强for循环测试
25         long start2 = System.currentTimeMillis();
26             for(Integer inte : list) {
27                 System.out.print(inte);
28             }
29         long end2 = System.currentTimeMillis();
30         System.out.println("for本次执行耗费了"+(end2-start2)+"毫秒");
31     }

  运行结果为:

 

以上是关于for()与iterator()遍历循环的区别,各自的特点?的主要内容,如果未能解决你的问题,请参考以下文章

foreach与for的区别

Java—增强for循环与for循环的区别/泛型通配符/LinkedList集合

ES6 Iterator for...of

for...of和for..in区别

java中Collection集合Iterator迭代器接口for each循环遍历集合或对象

java中的Iterator与增强for循环的效率比较