Tôi muốn sắp xếp ArrayList
bằng cách sử dụng kiểu boolean. Về cơ bản tôi muốn hiển thị các mục nhập với số true
trước tiên. Đây là mã của tôi dưới đây:Sắp xếp một ArrayList theo kiểu boolean nguyên thủy
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;
}
});
thứ tự trước khi sắp xếp: đúng đúng đúng sai sai sai f alse đúng sai sai
thứ tự sau khi phân loại: sai sai đúng đúng đúng đúng sai sai sai sai
nếu chúng là '==' return 0. Nếu chúng là '! =', Thì hãy sử dụng 1 hoặc -1 dựa trên việc đầu tiên là đúng hay sai. –
Điều kiện 'if' thứ hai của bạn sẽ không bao giờ đánh giá thành' true'. Nó đồng nghĩa với cái đầu tiên. – 5gon12eder
bạn cần xác định loại bạn cần, có liên quan đến id không? – roeygol