java - 按原始 boolean 类型对 ArrayList 进行排序

标签 java sorting arraylist java-collections-api

我想使用 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/

相关文章:

java - Java 中脚本标签模式的正则表达式模式

Java:当值是数组列表时,按值对映射进行排序

java - 如果不实现 Serializable 接口(interface),是否可以使类在 Java 中持久化?

c - 从排序数组中删除元素的函数

Java 8 按某个位置的属性对列表进行分组

php - 排序 postgresql 数据库转储 (pg_dump)

java - 如何使用另一个ArrayList的对象创建一个ArrayList?

java - session 属性缺少列表

java - 使用浏览器小程序从 IP 地址/端口检索数据

java - 将java服务器移植到Android