Thursday, January 16, 2014

How to sort collection on multiple attributes



 


Q) How to sort collection on multiple attributes?
A) For classes that don’t implement
comparable interface, or when one needs even more control over ordering based on multiple attributes, a
Comparator interface should be used.


Example:

public class graduationCeremony {
    String campus;
    String faculty;
    String 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;
    }
}


No comments:

Post a Comment