Desidero ordinare il mio ArrayList
utilizzando un tipo booleano. Fondamentalmente voglio mostrare le voci con true
prima. Qui è il mio codice qui sotto:Ordinamento di una lista di array per tipo booleano primitivo
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;
}
});
ordinare prima l'ordinamento: vero vero vero falso falso falso f alse vero falso falso
dell'Ordine dopo la cernita: falso falso vero vero vero vero falso falso falso falso
se sono '==' restituisce 0. Se sono '! =', Quindi utilizzare 1 o -1 in base al fatto che il primo sia vero o falso. –
La tua seconda condizione 'if' non valuterà mai' true'. È sinonimo del primo. – 5gon12eder
è necessario definire il tipo necessario, è coinvolto con l'id? – roeygol