java - 使用比较器时如何排除字符串

标签 java comparator

现在我正在使用比较器对我的对象进行排序。我的列表中的项目如下

   FIRST ITEM
   SECOND ITEM
   THIRD ITEM
   LAST ITEM
   FORTH ITEM

比较器代码是:

public static Comparator<PartyResultVO> sortData = new Comparator<PartyResultVO>()
{

     public int compare(VO vo1, VO vo2)
     return (vo1.getName()).compareTo(vo2.getName());
};

它可以完美地进行排序。但是我想要的是我需要将名为 LAST ITEM 的项目放在最后。我如何才能仅排除该对象并放在最后。有吗任何方法都可以做到这一点。

请帮助我。提前致谢...

最佳答案

您可以为这种情况添加特殊逻辑:

public static Comparator<VO> sortData = new Comparator<VO>()
{
     public int compare(VO vo1, VO vo2) {
         if (vo1.getName().equals("LAST ITEM")) {
              if (vo2.getName().equals("LAST ITEM")) {
                  return 0;
              } else {
                  return 1;
              }
         else if (vo2.getName().equals("LAST ITEM")) {
              return -1;
         }
         return (vo1.getName()).compareTo(vo2.getName());
     }
};

关于java - 使用比较器时如何排除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16603601/

相关文章:

java - 如何在 EJB jar 文件中包含 jar 依赖项?

java - 使用在规范 (JAX-RS) 中定义或在实现 (Jersey) 中定义的类?

java - 从版本 4.7.2 开始,ANTLR 无法生成 java 代码

java - 比较静态类中使用的参数

java - 使用 Comparator 类时,Android Studio Gradle 不会构建我的应用程序?

java - 如何在java中扩展以下API函数而不导致二义性

java - 在 java web start 中找不到类

c++ - 使用相同的函数对 vector<X> 和 set<X> 中的自定义比较器进行排序

c++ - 自定义比较器和模板的具体问题

java - 使用 Java TreeSet 的 AlphanumComparator 进行链接