If you don’t want to add a dependency on Guava (per Michael’s answer) then this comparator is equivalent:
private static Comparator<String> ALPHABETICAL_ORDER = new Comparator<String>() {
public int compare(String str1, String str2) {
int res = String.CASE_INSENSITIVE_ORDER.compare(str1, str2);
if (res == 0) {
res = str1.compareTo(str2);
}
return res;
}
};
Collections.sort(list, ALPHABETICAL_ORDER);
And I think it is just as easy to understand and code …
The last 4 lines of the method can written more concisely as follows:
return (res != 0) ? res : str1.compareTo(str2);