gpt4 book ai didi

java - 哪个字符串始终具有正的compareTo 返回值,无论它与哪个其他字符串进行比较?

转载 作者:行者123 更新时间:2023-12-02 01:31:20 24 4
gpt4 key购买 nike

我想知道排序系统中最大可能的字符串。当我按升序排序时,将保证该项目将位于底部。我将使用该字符串将空单元格放置在底部。

我尝试了“zzzzzzzzzzzz”字符串,但在某些情况下不起作用。

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);
});

三元检查是为了确保排序保持一致和稳定。

关于java - 哪个字符串始终具有正的compareTo 返回值,无论它与哪个其他字符串进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com