1. ホーム
  2. java-8

[解決済み] Java 8でストリームを使用して整数から最大値を見つけるには?

2022-11-11 03:28:20

質問

私は Integer list で、その中から list.stream() 最大値を求めます。

最も簡単な方法は何ですか?コンパレータは必要ですか?

どのように解決するのですか?

ストリームを IntStream :

OptionalInt max = list.stream().mapToInt(Integer::intValue).max();

または自然順のコンパレータを指定する。

Optional<Integer> max = list.stream().max(Comparator.naturalOrder());

またはreduce操作を使う。

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();