Javaのリストのソート方法を教えてください。
ListはJavaでのインターフェースであり、具体的な実装クラスではありません。Listインターフェースには、リスト内の要素を並べ替えるためのsortメソッドが提供されています。
sortメソッドには2つのオーバーロード形式があります。
- 指定された比較器に基づいてリストをソートするsortメソッドは、新しいリストを返すことなく、元のリストを変更する。
- 例えば:
- List list = Arrays.asList(3, 1, 2);
list.sort(new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});リスト リスト = Arrays.asList(3, 1, 2);
リスト.sort(new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
}); - sort(Comparator<? super E> c) メソッド:リストを要素の自然な順序に並べ替えます。要素の自然な順序は、要素クラスがComparableインターフェースを実装して定義されます。要素クラスはcompareToメソッドを実装する必要があり、このメソッドは2つの要素の順序を比較するために使用されます。
- 例えば:
- List list = Arrays.asList(“c”, “a”, “b”);
Collections.sort(list);
Listインターフェースはソート可能なコレクションではないことに注意する必要があります。ArrayListなどListインターフェースを実装したクラスのみがsortメソッドを使用できます。また、sortメソッドは元のリストの順序を直接変更します。新しいソートされたリストを返すわけではありません。