Vir*_*ade 11
如果您使用的是Java 8,则可以轻松构建所需的比较器:
Arrays.sort(stringArray, Comparator.nullsLast(Comparator.naturalOrder()));
Run Code Online (Sandbox Code Playgroud)
但是如果你不使用java 8,你可以使用下面的比较器
public class StringNullComparator implements Comparator<String> {
public int compare(String stringOne, String stringTwo) {
if (stringOne != null && stringTwo != null)
return stringOne.compareTo(stringTwo);
return (stringOne == stringTwo)?0:(stringOne==null? 1 : -1);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以按照以下说明使用
Arrays.sort(stringArray, new StringNullComparator());
Run Code Online (Sandbox Code Playgroud)
自定义比较器传递给排序:
public class StringComparator implements Comparator<String> {
public int compare(String s1, String s2) {
if (s1 != null && s2 != null)
return s1.compareTo(s2);
return (s1 == null) ? 1 : -1;
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
Collectios.sort(list, new StringComparator());
Run Code Online (Sandbox Code Playgroud)