pcb*_*abu 83 java-8 java-stream
我有一个列表,Integer list从list.stream()我想要的最大值.什么是最简单的方法?我需要比较器吗?
Tag*_*eev 182
您可以将流转换为IntStream:
OptionalInt max = list.stream().mapToInt(Integer::intValue).max();
Run Code Online (Sandbox Code Playgroud)
或者指定自然顺序比较器:
Optional<Integer> max = list.stream().max(Comparator.naturalOrder());
Run Code Online (Sandbox Code Playgroud)
或者使用reduce操作:
Optional<Integer> max = list.stream().reduce(Integer::max);
Run Code Online (Sandbox Code Playgroud)
或使用收藏家:
Optional<Integer> max = list.stream().collect(Collectors.maxBy(Comparator.naturalOrder()));
Run Code Online (Sandbox Code Playgroud)
或者使用IntSummaryStatistics:
int max = list.stream().collect(Collectors.summarizingInt(Integer::intValue)).getMax();
Run Code Online (Sandbox Code Playgroud)
小智 9
int max = list.stream().reduce(Integer.MIN_VALUE, (a, b) -> Integer.max(a, b));
Run Code Online (Sandbox Code Playgroud)