在Java中,可以使用Comparator接口來實現多條件排序。Comparator接口包含一個compare方法,可以在其中編寫多個條件來定義排序規則。以下是一個示例代碼:
假設有一個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方法來對列表進行排序。