Ich möchte meine ArrayList
mit einem booleschen Typ zu sortieren. Grundsätzlich möchte ich Einträge zuerst mit true
anzeigen. Hier ist mein Code unten:Sortieren einer ArrayList nach primitiven booleschen Typ
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;
}
});
Bestellung vor Sortierung: wahr wahr wahr falsch falsch falsch f alse wahr falsch falsch
Sortieren nach Sortierung: falsch falsch wahr wahr wahr wahr falsch falsch falsch falsch
Wenn sie '==' return 0 sind. Wenn sie '! –
Ihre zweite 'if'-Bedingung wird niemals zu' true 'ausgewertet. Es ist gleichbedeutend mit dem ersten. – 5gon12eder
Sie müssen die Art definieren, die Sie benötigen, ist es mit der ID beteiligt? – roeygol