Java 複数条件ソートの実装方法【サンプルコード付き】
Javaでは、複数条件の並び替えを実装するためにComparatorインターフェースを使用することができます。Comparatorインターフェースには、比較メソッドが含まれており、そこに複数の条件を記述して並び替え規則を定義することができます。以下は一例です:
Personクラスがあり、name属性とage属性を含んでいると仮定します。
public class Person {
private String name;
private int age;
// 构造方法和getter/setter略
}
現在、私たちは年齢順に並べ替えたいと思っています。同じ年齢の場合は、名前のアルファベット順に並べ替えます。
List<Person> people = new ArrayList<>();
// 添加Person对象到people列表
Collections.sort(people, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
if (p1.getAge() != p2.getAge()) {
return p1.getAge() - p2.getAge();
} else {
return p1.getName().compareTo(p2.getName());
}
}
});
この例では、Comparatorインターフェースを使用して、匿名内部クラスを実装してcompareメソッドをオーバーライドし、ソートルールを定義しました。最初に年齢を比較し、年齢が異なる場合は年齢の昇順でソートされます。年齢が同じ場合は名前を比較し、名前のアルファベット順にソートされます。最後にCollections.sortメソッドを使用してリストをソートします。