因此,就实际代码而言,它将类似于:
Collections.sort(strList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int returnVal = 0;
//handle nulls, there's some sample logic:
if(o1 == null && o2 == null){
returnVal = 0;
} else
if(o1 == null && o2 != null){
returnVal = 1;
} else
if(o1 != null && o2 == null){
returnVal = -1;
} else {
//sort by length
returnVal = ((Integer)o1.length()).compareTo((Integer)o2.length());
//if equal length, sort by string
if(returnVal == 0){
returnVal = o1.compareTo(o2);
}
}
return returnVal;
}
});
我还为空检查添加了逻辑,并将它们移动到排序列表的末尾。可能有不同的实用程序已经这样做了,你可以调用它。
另请注意,如果您希望字符串比较忽略大小写,请改用 String.compareToIgnoreCase() 方法。