java - java中严格使用compareTo按2个条件排序

标签 java sorting compareto

    public int compareTo(T o){

      if (this.getId().charAt(0) < o.getId() ){
         return 1;
      }else{
         return -1;
      }

      //Id data = a, b, f, z
      //num data = 1, 2, 4, 8

      //i want to sort the list according to their id first. then also sort it with their 'num' after sorting with their id first
         //sort id first. sort according to num after
   }

}

我想先根据 ID 对列表进行排序。然后根据num。我会怎样..

最佳答案

尝试以下代码片段。

public int compareTo(Person o){

    int idResult=id.compareTo(o.getId();
    if (idResult == 0) {//same
        return Integer.compare(this.num, o.num);//compare numbers
    }
    return idResult;//else return resut of id comparison
}

关于java - java中严格使用compareTo按2个条件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60224588/

相关文章:

java - 来自父项目的依赖位于 Maven 依赖树的哪一层

java - 如何在 Android 中自动调整一组组件的大小?

java - 程序由于递归而变慢

python - 对 namedtuple 类进行自定义排序

java - 如何将 Text 对象居中到 JavaFX Stage 的正中心?

php - 如何在laravel5中获取另一个表的列数据?

c# - 按日期值排序列表

java - 在枚举中使用 compareTo

java - 为什么在 Java 中进行交易之前要与 BigDecimal.ONE 比较余额?

java - 原始类型双重错误