无论比较其他字符串,哪个字符串将始终具有正面比较返回值

  • 本文关键字:比较 字符串 返回值 其他 java
  • 更新时间 :
  • 英文 :


我想知道排序系统中的最大可能的字符串。当我以越来越多的顺序排序时,这项项目将自己定位在底部。我将使用此字符串将空单元放在底部。

我尝试了" 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);
    });

在那里进行三元检查以确保排序保持一致且稳定。

最新更新