回答編集履歴
2
「負のほうに」を削除、メソッド参照Comparator
test
CHANGED
@@ -101,3 +101,13 @@
|
|
101
101
|
maxメソッド内ではこれを自動でやってくれるのでd1とかd2に当たるものが何か外部からは見えませんが、「短いものから先に並ぶ」という要件にはなっています。
|
102
102
|
|
103
103
|
※今回の場合は「文字列の長さ」のため、両方0以上の値であるから引き算で比較できたが、一般のint値同士を引き算で比較するとオーバーフローする恐れがあるので注意が必要
|
104
|
+
|
105
|
+
また次のように書くことも可能
|
106
|
+
|
107
|
+
```java
|
108
|
+
|
109
|
+
Optional<String> result2 = data.stream().max(Comparator.comparingInt(String::length));
|
110
|
+
|
111
|
+
```
|
112
|
+
|
113
|
+
こうすることで、「文字列の長さで比較」ということを明示的にできる
|
1
\[
test
CHANGED
@@ -100,4 +100,4 @@
|
|
100
100
|
|
101
101
|
maxメソッド内ではこれを自動でやってくれるのでd1とかd2に当たるものが何か外部からは見えませんが、「短いものから先に並ぶ」という要件にはなっています。
|
102
102
|
|
103
|
-
※今回の場合は「文字列の長さ」のため、両方0以上の値であるから引き算で比較できたが、一般のint値同士を引き算で比較すると
|
103
|
+
※今回の場合は「文字列の長さ」のため、両方0以上の値であるから引き算で比較できたが、一般のint値同士を引き算で比較するとオーバーフローする恐れがあるので注意が必要
|