Ich habe einen Klassenbenutzer, der ein boolesches Feld enthält, ich möchte eine Liste von Benutzern sortieren, ich möchte die Benutzer, die das boolesche Feld gleich wahr haben, an der Spitze der Liste und als Ich möchte sie nach ihren Namen sortieren. Hier ist meine Klasse:Vergleichen Sie zwei Objekte nach zwei Kriterien
public class User{
int id;
String name;
boolean myBooleanField;
public User(int id, String name, boolean myBooleanField){
this.id = id;
this.name = name;
this.myBooleanField = myBooleanField;
}
@Override
public boolean equals(Object obj) {
return this.id == ((User) obj).id;
}
}
Hier ist ein Beispiel zu löschen, was ich will: können sagen, dass ich diese Sammlung von Benutzern haben:
ArrayList<User> users = new ArrayList<User>();
users.add(new User(1,"user1",false));
users.add(new User(2,"user2",true));
users.add(new User(3,"user3",true));
users.add(new User(4,"user4",false));
Collections.sort(users, new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
//Here i'm lookin for what should i add to compare the two users depending to the boolean field
return u1.name.compareTo(u2.name);
}
});
for(User u : users){
System.out.println(u.name);
}
Ich möchte Benutzer sortieren, dieses Ergebnis zu erhalten :
user2
user3
user1
user4
Ich glaube, Sie sonst bedeuten, wenn (u1.myBooleanField && u2.myBooleanField!) – user3578325