我正在按值比较对象列表。但是该值应该是我的用户定义值。我有一个列表{0,qwerty} {2,abc},{4,xyz},{0,temp}。我想按第一个值排序,但我希望所有对象的末尾都为零。意味着我想对除零以外的值进行排序..我该怎么做?

Comparator<YourSortableEntity> myCustomComparator =
  new Comparator<YourSortableEntity>() {
  @Override
  public int compare(YourSortableEntity o1, YourSortableEntity o2) {
    int compareVal = o1.getRank() - o2.getRank();
    if (o1.getRank() == 0)
      return compareVal;
    return compareVal;
  }
};

最佳答案

public int compare(YourSortableEntity o1, YourSortableEntity o2) {
    if(o1.getRank() == o2.getRank()) {
        //futrther logic
    } else if(o1.getRank() == 0) {
        return 1;
    } else if(o2.getRank() == 0) {
        return -1;
    } else return o1.getRank() - o2.getRank();
}

关于java - 使用比较器排序(特定值除外),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57924957/

10-09 04:35