как найти максимальное значение из целого числа, используя поток в Java 8?
у меня есть список Integerlist и 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();