java
1import java.util.ArrayList; 2import java.util.Collections; 3import java.util.Comparator; 4import java.util.List; 5 6public class SampleClass { 7 public static void main(String[] args) { 8 List<Integer> list = new ArrayList<Integer>(); 9 list.add(5); 10 list.add(3); 11 list.add(100); 12 list.add(40); 13 list.add(2); 14 15 Comparator<Integer> comparator = new Comparator<Integer>() { 16 @Override 17 public int compare(Integer o1, Integer o2) { 18 return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); 19 } 20 }; 21 22 Collections.sort(list, comparator); 23 24 System.out.println(list); 25 } 26}
引用:https://techacademy.jp/magazine/34841
javaを勉強し始めて間もないものですがcompareについて質問があります。
①上記のコードのcompareメソッドの引数には何が渡されますか?
②sortメソッドの第一引数はcompareメソッドの戻り値がプラスの整数なら昇順、マイナスの整数なら降順になるのは何故ですか?
③compareメソッド「return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));」はプラスの整数をかえし、「return Integer.valueOf(o2).compareTo(Integer.valueOf(o1));」はマイナスの整数を返すと見ました。しかし、compareの引数次第で変わってくると思います。こちらのサイトで見ました。(https://ito-u-oti.com/post-611/)
例えば「return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));」これだとo1=2,o2=5だとマイナスの整数が返ってくると思います。
質問自体初めてなので至らないところがあるかと思いますがよろしくお願いします。
タグ「Jinja」ですが、「Java」の誤りではありませんか?
Collection.sort()の公式ドキュメントはご覧になっていますか?
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html#sort-java.util.List-

回答2件
あなたの回答
tips
プレビュー