求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流的效率最高)。