回答編集履歴
2
コメントへの対応
answer
CHANGED
@@ -5,4 +5,30 @@
|
|
5
5
|
> 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
|
6
6
|
|
7
7
|
minを返す現在の実装の場合、要素に負数がないListの場合、必ず比較の後者が小さいと判定されます。
|
8
|
-
そのためListに
|
8
|
+
そのためListの要素に正の整数しかない場合、必ず要素の最後がminと判断されるはずです。
|
9
|
+
|
10
|
+
---
|
11
|
+
追記
|
12
|
+
|
13
|
+
コメントのやりとり見ていると理解済みかと思いますが、
|
14
|
+
> Listに1以上の値しかないというのは、第1引数と第2引数の値の比較結果のことでしょうか。
|
15
|
+
|
16
|
+
return Integer.min(o1, o2);⇒必ず50が返る
|
17
|
+
compareメソッドの特性により、50ではなく、正の数が返る
|
18
|
+
|
19
|
+
> Listに1以上の値しかない
|
20
|
+
|
21
|
+
要素の値についてです。
|
22
|
+
要素に正の整数しかないなら、minの結果が必ず正の整数になり、必ず第一引数が大きいと判断されます。
|
23
|
+
|
24
|
+
> compareメソッドの特性により、50ではなく、正の数が返る
|
25
|
+
|
26
|
+
特性ではありません。実際に50を返していますし、50は正の数です。
|
27
|
+
繰り返しになりますが、compareの実装は
|
28
|
+
|
29
|
+
> 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
|
30
|
+
|
31
|
+
のように`実装する必要`があります。
|
32
|
+
|
33
|
+
すでにいくつか試されているようですが、Listの要素を2つにして単純な比較の方が動作を理解しやすいかと思います。
|
34
|
+
現在の実装だと(1,2)と(2,1)のような要素の順序により期待の結果にならないことが容易にわかるはずです。
|
1
compareの説明追加
answer
CHANGED
@@ -2,5 +2,7 @@
|
|
2
2
|
|
3
3
|
[compare](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Comparator.html#compare-T-T-)は、1か0か-1を返す実装をします。
|
4
4
|
|
5
|
+
> 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
|
6
|
+
|
5
|
-
minを返す場合、
|
7
|
+
minを返す現在の実装の場合、要素に負数がないListの場合、必ず比較の後者が小さいと判定されます。
|
6
|
-
|
8
|
+
そのためListに1以上の値しかない場合、必ず要素の最後がminと判断されるはずです。
|