teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメントへの対応

2020/04/17 02:10

投稿

momon-ga
momon-ga

スコア4828

answer CHANGED
@@ -5,4 +5,30 @@
5
5
  > 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
6
6
 
7
7
  minを返す現在の実装の場合、要素に負数がないListの場合、必ず比較の後者が小さいと判定されます。
8
- そのためListに1以上しかない場合、必ず要素の最後がminと判断されるはずです。
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の説明追加

2020/04/17 02:10

投稿

momon-ga
momon-ga

スコア4828

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を返す場合、1(以上)なの、比較の後者が小さいと判定されます。
7
+ minを返す現在の実装の場合、要素に負数がいList場合必ず比較の後者が小さいと判定されます。
6
- 未確認ですが、現在実装ではListにしかない場合、必ず要素の最後がminと判断されると思います。
8
+ ためListに1以上の値しかない場合、必ず要素の最後がminと判断されるはずです。