list.forEach 和 list.stream().forEach

总结:使用上没啥太大区别,百万以上级级别使用 比增强for循环要快。亿级的使用list.parallelStream().forEach要快,但是parallelStream无序。

import org.springframework.util.StopWatch;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

public class Demo {
    public static void main(String[] args) {
        StopWatch watch = new StopWatch();
        //AtomicInteger count = new AtomicInteger();
        // List<String> list = Arrays.asList("xi","lin","na","yi");
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10000000; i++) {
            list.add(i);
        }
        // 百万以上 增强for还是forEach都可以
        System.out.println("增强for循环:");
        watch.start("任务1");
        for (Integer s : list) {
            //count.getAndIncrement();
        }
        watch.stop();

        // 百万以上 用forEach
        System.out.println("\n集合流调用forEach:");
        watch.start("任务2");
        list.stream().forEach(s->{
            //count.getAndIncrement();
        });
        watch.stop();

        System.out.println("\n集合的迭代器: ");
        watch.start("任务3");
        list.forEach(s->{
            //count.getAndIncrement();
        });
        watch.stop();

        // 这种亿级别使用
        System.out.println("\n多线程集合流:");
        watch.start("任务4");
        list.parallelStream().forEach(s->{
            //count.getAndIncrement();
        });
        watch.stop();
        System.out.println(watch.prettyPrint());
        //System.out.println(count);
    }
}
posted @ 2024-07-03 15:19  五字妹妹实在是棒  阅读(155)  评论(0)    收藏  举报
返回顶部