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