求List<Inteager>里面的最大值

求List<Inteager>里面的最大值

用了三种方法,对比了下效率

public class MaxList {
    public static void main(String[] args) {
        List<Integer> integers = new ArrayList<>();
        for (int i = 0; i < 1000; i++) {
            integers.add(new Random().nextInt(100));
        }
        //工具类api
        long startTime=System.nanoTime();
        Integer max = Collections.max(integers);
        System.out.println(max);
        System.out.println(System.nanoTime()-startTime+"ns");

        //stream流
        long startTime2=System.nanoTime();
        System.out.println(getMaxFromList(integers));
        System.out.println(System.nanoTime()-startTime2+"ns");

        //循环比较
        long startTime3=System.nanoTime();
        System.out.println(getMaxFromListBySort(integers));
        System.out.println(System.nanoTime()-startTime3+"ns");
    }

    public static int getMaxFromList(List<Integer> list) {
        Integer integer = list.stream().max(Integer::compareTo).get();

        return integer;
    }

    public static  int getMaxFromListBySort(List<Integer> list)
    {
        int max = list.get(0);
        for(Integer i :list){
            if (i>max)
                max = i;
        }
        return max;

    }
}

从效率上来说stream流的效率不如另外两种(我一直以为stream流的效率最高)。

 

posted @ 2022-05-10 17:47  莫得感情的肝帝  阅读(715)  评论(0编辑  收藏  举报