回答編集履歴

2

「負のほうに」を削除、メソッド参照Comparator

2017/08/26 14:47

投稿

swordone
swordone

スコア20649

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

\[

2017/08/26 14:47

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -100,4 +100,4 @@
100
100
 
101
101
  maxメソッド内ではこれを自動でやってくれるのでd1とかd2に当たるものが何か外部からは見えませんが、「短いものから先に並ぶ」という要件にはなっています。
102
102
 
103
- ※今回の場合は「文字列の長さ」のため、両方0以上の値であるから引き算で比較できたが、一般のint値同士を引き算で比較すると負のほうにオーバーフローする恐れがあるので注意が必要
103
+ ※今回の場合は「文字列の長さ」のため、両方0以上の値であるから引き算で比較できたが、一般のint値同士を引き算で比較するとオーバーフローする恐れがあるので注意が必要