按多个字段对对象列表进行排序
我有一个Java对象列表,希望根据多个字段进行排序。
public class graduationCeremony {    String campus;
    String faculty;
    String building;
}
是否可以使用Comparator或Comparable接口根据多个字段对列表进行排序?我看到的所有示例仅根据一个领域进行排序。换句话说,可以按“校园”或“教师”或“建筑”进行排序。我想按“校园”,“教师”,“建筑”(因为它在SQL中存在ORDER
BY campus, faculty, building)进行排序
回答:
您的比较器如下所示:
public class GraduationCeremonyComparator implements Comparator<GraduationCeremony> {    public int compare(GraduationCeremony o1, GraduationCeremony o2) {
        int value1 = o1.campus.compareTo(o2.campus);
        if (value1 == 0) {
            int value2 = o1.faculty.compareTo(o2.faculty);
            if (value2 == 0) {
                return o1.building.compareTo(o2.building);
            } else {
                return value2;
            }
        }
        return value1;
    }
}
基本上,只要到目前为止已比较的属性相等(== 0),它就会继续比较类的每个连续属性。
以上是 按多个字段对对象列表进行排序 的全部内容, 来源链接: utcz.com/qa/401882.html






