开发中经常用到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
===============