Я хочу отсортировать мой ArrayList
с помощью булевого типа. В основном я хочу показать записи с true
. Вот мой код ниже:Сортировка ArrayList примитивным булевым типом
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;
}
});
заказа до сортировки: истинного истинного истинного ложь ложь лжи f Alse истинного ложного ложного
ордена после сортировки: ложных ложных истинного истинного истинного истинного ложного ложных ложных ложного
если они являются '==' return 0. Если они являются '! =', То используйте 1 или -1 на основе того, является ли первая истиной или ложью. –
Ваше второе условие 'if' никогда не будет оцениваться как' true'. Это синоним первого. – 5gon12eder
вам нужно определить сортировку, в которой вы нуждаетесь, связана ли она с идентификатором? – roeygol