普通for循环与增强for循环效率对比

开发中经常用到for循环,但是到底选择那一个效率更高,可能让有些同学出现纠结,给人感觉好像是增强for循环效率高,

但是。。。。猜测总是没法让人不放心,

千猜万猜还不如,动手做个测试,证明下,

测试步骤如下

1、定义一个对象,

@Data
public class Car {
    private String name;
    private Integer price;
    private String color;
    private Integer size;
}

2、用一个普通for循环往list里增加对象

        int tempSize = 100*100*100*100;

        List<Car> list = new ArrayList<Car>();
        for (int i = 0; i< tempSize;i++ ) {
            Car car = new Car();
            car.setSize(i);
            list.add(car);
        }

3、再用普通for循环和增加for循环取出list中的对象,并记录总耗时

   System.out.println("===============");
    System.out.println("普通for循环");
    System.out.println(System.currentTimeMillis());
    for (int i = 0;i<list.size();i++) {
        list.get(i).getSize();
    }
    System.out.println(System.currentTimeMillis());
    System.out.println("===============");


    System.out.println("===============");
    System.out.println("增强for循环");
    System.out.println(System.currentTimeMillis());
    for (Car car : list) {
        car.getSize();
    }
    System.out.println(System.currentTimeMillis());
    System.out.println("===============");

结果如下

===============
普通for循环
1557717515954
1557717516347

总花费 393

===============
增强for循环
1557717516348
1557717516711
总花费 353

==========================

4、上面是两个循环是一个方法里执行的,可能会互相干扰,下面我们分开方法执行

一次只记录一次for循环的费时

结果如下

===========
普通for循环
1557804229133
1557804229520
总耗时 387

===============

===============
增强for循环
1557804537568
1557804538024
总耗时 456

===============

猜你喜欢

转载自blog.csdn.net/yb546822612/article/details/90670953