概述
原文地址:http://blog.csdn.net/zq602316498/article/details/39163899
在 JDK1.5 之后,至少有三种遍历的方式:ForEach、迭代器、for循环性能比较
- package bupt.xiaoye.charpter2.list;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- public class TestFor {
- public static void testForEach(List list) {
- Object temp;
- for(Object t : list)
- temp = t;
- }
- public static void testFor(List list) {
- Object temp;
- for (int i = 0; i < 1000000; i++) {
- temp = list.get(i);
- }
- }
- public static void testIterator(List list) {
- Object temp;
- for(Iterator<Object> it = list.iterator();it.hasNext();){
- temp = it.next();
- }
- }
- public static void main(String[] args) {
- Object obj = new Object();
- List list = new ArrayList();
- for (int i = 0; i < 1000000; i++) {
- list.add(obj);
- }
- testFor(list);
- testForEach(list);
- testIterator(list);
- }
- }
运行结果为:
可以看到,直接for循环效率最高,其次是迭代器和 ForEach操作。
作为语法糖,其实 ForEach 编译成 字节码之后,使用的是迭代器实现的,反编译后,testForEach方法如下:
- public static void testForEach(List list) {
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- Object t = iterator.next();
- Object obj = t;
- }
- }
可以看到,只比迭代器遍历多了生成中间变量这一步,因为性能也略微下降了一些。
原文地址:http://blog.csdn.net/zq602316498/article/details/39163899
最后
以上就是瘦瘦热狗为你收集整理的ForEach、迭代器、for循环性能比较的全部内容,希望文章能够帮你解决ForEach、迭代器、for循环性能比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复