我想使用 bool(boolean) 类型对ArrayList进行排序。基本上我想先显示true的条目。这是我的代码如下:

Abc.java

public class Abc {
 int id;
 bool isClickable;

 Abc(int i, boolean isCl){
    this.id = i;
    this.isClickable = iCl;
 }
 }

Main.java
List<Abc> abc = new ArrayList<Abc>();

//add entries here

//now sort them
Collections.sort(abc, new Comparator<Abc>(){
        @Override
        public int compare(Abc abc1, Abc abc2){

            boolean b1 = abc1.isClickable;
            boolean b2 = abc2.isClickable;

            if (b1 == !b2){
                return 1;
            }
            if (!b1 == b2){
                return -1;
            }
            return 0;
        }
    });

排序之前的顺序:
真正
真正
真正




真正



排序后的顺序:


真正
真正
真正
真正



最佳答案

另一种方法是:

Collections.sort(abc, new Comparator<Abc>() {
        @Override
        public int compare(Abc abc1, Abc abc2) {
            return Boolean.compare(abc2.isClickable,abc1.isClickable);
        }
    });

关于java - 按基本 boolean 类型对ArrayList进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28002342/

10-11 22:30
查看更多