我想知道排序系统中的最大可能的字符串。当我以越来越多的顺序排序时,这项项目将自己定位在底部。我将使用此字符串将空单元放在底部。
我尝试了" zzzzzzzzzzzzz"字符串,但在某些情况下不起作用。
mainPersonnelList.sort((Personnel o1, Personnel o2) -> {
String o1Str = o1.getPersonnelName();
String o2Str = o2.getPersonnelName();
if(o1Str.isEmpty()){o1Str = "zzzzzzzzzzz";}
if(o2Str.isEmpty()){o2Str = "zzzzzzzzzzz";}
return o1Str.compareTo(o2Str);
});
我应该使用哪个字符串?
就您而言,字符串的大小没有限制。限制是由指针的大小和可用内存的数量定义的,这两个都不会帮助您制作工作程序。而且不要忘记,您不仅想要最长的字符串,而且还必须充满最大字符。z
外面还有字符,这是XY问题的一个很好的例子。
只需记住一个比较器返回的内容:一个指示比较方向的整数。您已经在测试空的元素,因此始终将它们移动是微不足道的:
mainPersonnelList.sort((Personnel o1, Personnel o2) -> {
String o1Str = o1.getPersonnelName();
String o2Str = o2.getPersonnelName();
if(o1Str.isEmpty()){
return o2Str.isEmpty() ? 0 : -1;
}
if(o2Str.isEmpty()){return 1;}
return o1Str.compareTo(o2Str);
});
在那里进行三元检查以确保排序保持一致且稳定。