Javaでコレクション内の要素を並べ替える方法は何ですか?
Javaでは、Collectionsクラスのsort()メソッドを使用して、コレクション内の要素を並べ替えることができます。sort()メソッドには2つのオーバーロード形式があり、1つはリストコレクション内の要素を並べ替えるものであり、もう1つはリストコレクション内の要素を指定された比較器に従って並べ替えるものです。
Listコレクション内の要素をソートする:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(3);
numbers.add(1);
numbers.add(4);
numbers.add(2);
Collections.sort(numbers);
System.out.println(numbers);
}
}
結果を出力する:
[1, 2, 3, 4, 5]
指定された比較器によって、Listコレクションの要素をソートする。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("John");
names.add("Alice");
names.add("Bob");
names.add("David");
names.add("Catherine");
// 根据字符串长度进行排序
Comparator<String> lengthComparator = Comparator.comparingInt(String::length);
Collections.sort(names, lengthComparator);
System.out.println(names);
}
}
結果を出力します。
[Bob, John, Alice, David, Catherine]
上記のコードは、整数と文字列を並び替える方法を示していますが、JavaのCollections.sort()メソッドは、Comparableインターフェースを実装したクラスのみを並び替えることができます。カスタムクラスを並び替えるには、そのクラスがComparableインターフェースを実装し、compareTo()メソッドで比較ルールを定義する必要があります。また、Comparatorを使用してコレクション内の要素を並び替えることもできますが、要素クラスの定義を変更する必要はありません。