как найти максимальное значение из целого числа, используя поток в Java 8?
у меня есть список Integer
list
и list.stream()
Я хочу максимальное значение. Какой самый простой способ? Нужен ли мне компаратор?
6 ответов:
вы можете либо преобразовать поток
IntStream
:OptionalInt max = list.stream().mapToInt(Integer::intValue).max();
или укажите компаратор естественного порядка:
Optional<Integer> max = list.stream().max(Comparator.naturalOrder());
или используйте уменьшить операцию:
Optional<Integer> max = list.stream().reduce(Integer::max);
или использовать взыскателя:
Optional<Integer> max = list.stream().collect(Collectors.maxBy(Comparator.naturalOrder()));
или использовать IntSummaryStatistics:
int max = list.stream().collect(Collectors.summarizingInt(Integer::intValue)).getMax();
другая версия может быть:
int maxUsingCollectorsReduce = list.stream().collect(Collectors.reducing(Integer::max)).get();