iteration,for,foreach哪个更快?

解决方案 »

  1.   

    没办法比:比如 ArrayList 使用 for 的 get(i) 远比 LinkedList 的 get(i) 快,
    但是 LinkedList 的 iterator 比 ArrayList 的 iterator 快。至于原因嘛,呵呵,你自己应该清楚。
      

  2.   

    比较快的话,是放在不同的位置进行比较的。你如果单独拿出这几个,确实没法比较。
    但是遍历集合iterator比get快
      

  3.   

    编译器简单的将for-each循环翻译为带有迭代器的循环。
    也就是说:  for(String str : list){
        System.out.println(str);
      }其实和  String str;
      for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(str))
        str = (String)iterator.next();是一样的。
      

  4.   

    他们没有什么快慢之分的!
    就是看用在什么地方了啊!
    但是一般都有for啊!
    在java里面foreach的支持还不是很强啊!就在页面能用下!
    Iterator它的功能太多了,它在做一般的遍历时会慢的,它不让有重复值。它就要比较数据了所以慢!
      

  5.   

    我一般都用iterator,因为记得list里添加删除次数多了,就不按顺序了,for会很长。但有一点,如果你的程序不会有多线程的问题,用for 有个好处,就是你一边遍历,一边可以remove,这样循环可能会减少次数。
    但iterator在遍历时,绝不允许remove的