前提
Java Gold取得に向けて学習中です。
Stream APIのmaxメソッドについて、APIリファレンスを見ると
「指定されたComparatorに従ってこのストリームの最大要素を返します。」とありますが
最大要素というのは、並び替えた後の最後の要素、という意味でしょうか。
該当のソースコード
このコードを実行すると3が出力されますが
Java
1 public static void main(String[] args) { 2 List<Integer> list = Arrays.asList(1, 3, 2); 3 Optional<Integer> result = list.stream().max((a, b) -> a.compareTo(b)); 4 result.ifPresent(System.out::print); 5 }
a.compareTo(b)の部分をマイナス符号で反転させる、もしくはb.compareTo(a)にすると、1が出力されます。
これは自然順ではなく、降順で並び替え、その結果の最後の要素が1という理解であってますか。
minも同様の動きをします。
Java
1 public static void main(String[] args) { 2 List<Integer> list = Arrays.asList(1, 3, 2); 3 Optional<Integer> result = list.stream().max((a, b) -> -(a.compareTo(b))); 4 result.ifPresent(System.out::print); 5 }
試したこと
APIリファレンスを読みましたが、答えが明確になりませんでした。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/21 14:16