Reputation: 341
Whats wrong with this sort? It doesn't work properly.
public List<LibRegistration> getLibraryRegistrationsSortedByTypeAndName()
{
List<LibRegistration> l = getLibRegs();
Collections.sort(l, new Comparator<LibRegistration>() {
public int compare(LibRegistration o1, LibRegistration o2) {
return o1.getLibraryType().compareTo(o2.getLibraryType()) != 0?o1.getLibraryType().compareTo(o2.getLibraryType()):o1.getLibraryName().compareTo(o2.getLibraryName());
}
});
return l;
}
Upvotes: 1
Views: 989
Reputation: 109547
Nothing wrong, more clear:
public int compare(LibRegistration o1, LibRegistration o2) {
int cmp = o1.getLibraryType().compareTo(o2.getLibraryType());
if (cmp == 0)
cmp = o1.getLibraryName().compareTo(o2.getLibraryName());
return cmp;
}
Though nulls not allowed and compareTo well defined.
Upvotes: 4