java各种List循环:for、forEach、lambda forEach、stream forEach、iterator性能效率对比

public static void main(String[] args) {
    for( int m=1;m<5;m++){
        for(int n=1;n<=4;n++){
            List<Integer> testList = Arrays.asList(new Integer[(int) Math.pow(100,(m))]);
            long t1 = System.currentTimeMillis();
            for(int i=0;i<testList.size();i++){
                Integer b = testList.get(i);
            }
            long t2 = System.currentTimeMillis();
            for(Integer i:testList){
                Integer b = i;
            }
            long t3 = System.currentTimeMillis();
            testList.forEach(integer -> {Integer b = integer;});
            long t4 = System.currentTimeMillis();
            testList.stream().forEach(integer -> {Integer b = integer;});
            long t5 = System.currentTimeMillis();
            testList.parallelStream().forEach(integer -> {Integer b = integer;});
            long t6 = System.currentTimeMillis();
            Integer b;
            for(Iterator<Integer> iterator = testList.iterator();iterator.hasNext();b = iterator.next());
            long t7 = System.currentTimeMillis();
            System.out.println("x" + n +": loop size:" + testList.size());
            System.out.println("y" + m + ": classical for loop waste millisecond:"+(t2-t1));
            System.out.println("y" + m + ": classical forEach loop waste millisecond:"+(t3-t2));
            System.out.println("y" + m + ": lambda forEach loop waste millisecond:"+(t4-t3));
            System.out.println("y" + m + ": lambda not parallel stream forEach loop waste millisecond:"+(t5-t4));
            System.out.println("y" + m + ": lambda parallel stream forEach loop waste millisecond:"+(t6-t5));
            System.out.println("y" + m + ": classical iterator loop waste millisecond:"+(t7-t6)+"\n");
        }
    }
}
x1: loop size:100
y1: classical for loop waste millisecond:0
y1: classical forEach loop waste millisecond:0
y1: lambda forEach loop waste millisecond:245
y1: lambda not parallel stream forEach loop waste millisecond:5
y1: lambda parallel stream forEach loop waste millisecond:36
y1: classical iterator loop waste millisecond:0

x2: loop size:100
y1: classical for loop waste millisecond:0
y1: classical forEach loop waste millisecond:0
y1: lambda forEach loop waste millisecond:0
y1: lambda not parallel stream forEach loop waste millisecond:0
y1: lambda parallel stream forEach loop waste millisecond:0
y1: classical iterator loop waste millisecond:0

x3: loop size:100
y1: classical for loop waste millisecond:0
y1: classical forEach loop waste millisecond:0
y1: lambda forEach loop waste millisecond:0
y1: lambda not parallel stream forEach loop waste millisecond:0
y1: lambda parallel stream forEach loop waste millisecond:0
y1: classical iterator loop waste millisecond:0

x4: loop size:100
y1: classical for loop waste millisecond:0
y1: classical forEach loop waste millisecond:0
y1: lambda forEach loop waste millisecond:0
y1: lambda not parallel stream forEach loop waste millisecond:0
y1: lambda parallel stream forEach loop waste millisecond:3
y1: classical iterator loop waste millisecond:0

x1: loop size:10000
y2: classical for loop waste millisecond:1
y2: classical forEach loop waste millisecond:10
y2: lambda forEach loop waste millisecond:1
y2: lambda not parallel stream forEach loop waste millisecond:0
y2: lambda parallel stream forEach loop waste millisecond:3
y2: classical iterator loop waste millisecond:1

x2: loop size:10000
y2: classical for loop waste millisecond:1
y2: classical forEach loop waste millisecond:1
y2: lambda forEach loop waste millisecond:0
y2: lambda not parallel stream forEach loop waste millisecond:1
y2: lambda parallel stream forEach loop waste millisecond:1
y2: classical iterator loop waste millisecond:2

x3: loop size:10000
y2: classical for loop waste millisecond:1
y2: classical forEach loop waste millisecond:2
y2: lambda forEach loop waste millisecond:3
y2: lambda not parallel stream forEach loop waste millisecond:0
y2: lambda parallel stream forEach loop waste millisecond:0
y2: classical iterator loop waste millisecond:1

x4: loop size:10000
y2: classical for loop waste millisecond:0
y2: classical forEach loop waste millisecond:0
y2: lambda forEach loop waste millisecond:1
y2: lambda not parallel stream forEach loop waste millisecond:0
y2: lambda parallel stream forEach loop waste millisecond:1
y2: classical iterator loop waste millisecond:0

x1: loop size:1000000
y3: classical for loop waste millisecond:82
y3: classical forEach loop waste millisecond:194
y3: lambda forEach loop waste millisecond:11
y3: lambda not parallel stream forEach loop waste millisecond:11
y3: lambda parallel stream forEach loop waste millisecond:5
y3: classical iterator loop waste millisecond:33

x2: loop size:1000000
y3: classical for loop waste millisecond:20
y3: classical forEach loop waste millisecond:24
y3: lambda forEach loop waste millisecond:11
y3: lambda not parallel stream forEach loop waste millisecond:2
y3: lambda parallel stream forEach loop waste millisecond:3
y3: classical iterator loop waste millisecond:54

x3: loop size:1000000
y3: classical for loop waste millisecond:8
y3: classical forEach loop waste millisecond:2
y3: lambda forEach loop waste millisecond:2
y3: lambda not parallel stream forEach loop waste millisecond:2
y3: lambda parallel stream forEach loop waste millisecond:10
y3: classical iterator loop waste millisecond:95

x4: loop size:1000000
y3: classical for loop waste millisecond:16
y3: classical forEach loop waste millisecond:2
y3: lambda forEach loop waste millisecond:3
y3: lambda not parallel stream forEach loop waste millisecond:1
y3: lambda parallel stream forEach loop waste millisecond:50
y3: classical iterator loop waste millisecond:3

x1: loop size:100000000
y4: classical for loop waste millisecond:1563
y4: classical forEach loop waste millisecond:248
y4: lambda forEach loop waste millisecond:199
y4: lambda not parallel stream forEach loop waste millisecond:168
y4: lambda parallel stream forEach loop waste millisecond:64
y4: classical iterator loop waste millisecond:202

x2: loop size:100000000
y4: classical for loop waste millisecond:510
y4: classical forEach loop waste millisecond:223
y4: lambda forEach loop waste millisecond:159
y4: lambda not parallel stream forEach loop waste millisecond:151
y4: lambda parallel stream forEach loop waste millisecond:50
y4: classical iterator loop waste millisecond:205

x3: loop size:100000000
y4: classical for loop waste millisecond:521
y4: classical forEach loop waste millisecond:215
y4: lambda forEach loop waste millisecond:150
y4: lambda not parallel stream forEach loop waste millisecond:155
y4: lambda parallel stream forEach loop waste millisecond:46
y4: classical iterator loop waste millisecond:203

x4: loop size:100000000
y4: classical for loop waste millisecond:505
y4: classical forEach loop waste millisecond:214
y4: lambda forEach loop waste millisecond:149
y4: lambda not parallel stream forEach loop waste millisecond:149
y4: lambda parallel stream forEach loop waste millisecond:56
y4: classical iterator loop waste millisecond:205

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工程师小A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值