偶尔讨论起增强for循环是不是效率会不如普通的迭代遍历呢。在网上搜索一下这二者的效率没有发现一个合理的解释。 示例代码 List<String> l = new ArrayList<String>(); l.add("abc"); for(String str:l){ System.out.println(str); } 生成的class文件 new java.util.ArrayList [16] 3 dup 4 invokespecial java.util.ArrayList() [18] 7 astore_1 [l] 8 aload_1 [l] 9 ldc <String "abc"> [19] 11 invokeinterface java.util.List.add(java.lang.Object) : boolean [21] [nargs: 2] 16 pop 17 aload_1 [l] 18 invokeinterface java.util.List.iterator() : java.util.Iterator [27] [nargs: 1] 23 astore_3 24 goto 44 27 aload_3 28 invokeinterface java.util.Iterator.next() : java.lang.Object [31] [nargs: 1] 33 checkcast java.lang.String [37] 36 astore_2 [str] 37 getstatic java.lang.System.out : java.io.PrintStream [39] 40 aload_2 [str] 41 invokevirtual java.io.PrintStream.println(java.lang.String) : void [45] 44 aload_3 45 invokeinterface java.util.Iterator.hasNext() : boolean [51] [nargs: 1] 50 ifne 27 53 return 通过查看编译后的class文件可以看得到。增强for循环在编译后,自动转换为使用Iterator迭代。所以二者除了写法上没有任何区别。 来源:CSDN作者:qingralf链接:https://blog.csdn.net/qingralf/article/details/6562571 标签 效率