要按兩個字段對對象進行排序,可以使用Comparator接口來自定義比較規則。以下是一個示例代碼,按照對象的兩個字段進行排序:
假設有一個對象Person,其中包含兩個屬性:name和age。現在要按照name屬性進行首先排序,如果name相同,則按照age屬性進行排序。
import java.util.Comparator;
public class Person {
private String name;
private int age;
// 構造方法、getter和setter方法省略
// 自定義比較規則
public static Comparator<Person> nameAndAgeComparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
int compareByName = p1.getName().compareTo(p2.getName());
if (compareByName == 0) {
return Integer.compare(p1.getAge(), p2.getAge());
}
return compareByName;
}
};
}
// 在使用時,可以使用Collections.sort()方法進行排序
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 25));
personList.add(new Person("Bob", 30));
personList.add(new Person("Alice", 20));
Collections.sort(personList, Person.nameAndAgeComparator);
在上面的代碼中,我們首先定義了一個nameAndAgeComparator比較器,它首先比較name屬性,如果name相同則再比較age屬性。然后在使用時,通過Collections.sort()方法進行排序,傳入比較器即可實現按照兩個字段排序的功能。