Ich möchte Liste der Benutzer auf der Grundlage von drei Kriterien sortieren. So habe ich erstellt individuelle Vergleichsliste zu sortieren, aber seine nicht funktioniert, wie ichSortierliste mit benutzerdefinierten Vergleicher funktioniert nicht
public class CustomComparator implements Comparator {
List<Integer> user1Time = new ArrayList<>();
List<Integer> user2Time = new ArrayList<>();
int user1Count, user2Count;
ParseUser user1, user2;
Date user1Date, user2Date;
boolean user1Short, user2Short;
private String TAG="CustomComparator";
@Override
public int compare(Object lhs, Object rhs) {
user1 = (ParseUser) lhs;
user2 = (ParseUser) rhs;
user1Time = user1.getList("timeAvailable");
user2Time = user2.getList("timeAvailable");
//To compare Available time of both users with Searched Time
if(user1Time!=null){
user1Time.retainAll(Utils.availableTime);
user1Count = user1Time.size();
}else{
user1Count=0;
}
if(user2Time!=null){
user2Time.retainAll(Utils.availableTime);
user2Count = user2Time.size();
}else{
user2Count=0;
}
Log.d(TAG, "compare: "+user1.getString("name")+" "+user1Count);
Log.d(TAG, "compare: "+user2.getString("name")+" "+user2Count);
//To compare lastSeen of both the users
user1Date = user1.getDate("lastSeen");
user2Date = user2.getDate("lastSeen");
//To compare shortNotice avilablity of both the user
user1Short = user1.getBoolean("shortNotice");
user2Short = user2.getBoolean("shortNotice");
if(user2Time!= null && user2Time!= null && user1Date!= null && user2Date!= null){
if (user1Count>user2Count){
if(user1Short){
if(user1Date.compareTo(user2Date)>0){
return -1;
}else {
return -1;
}
}else if (user1Date.compareTo(user2Date)>0){
return -1;
}else if (user2Date.compareTo(user1Date)>0){
return 1;
}
}else if(user2Short){
if(user2Date.compareTo(user1Date)>0){
return 1;
}else {
return -1;
}
}else if (user2Date.compareTo(user1Date)>0){
return 1;
}else if (user1Date.compareTo(user2Date)>0){
return -1;
}
}
return 0;
}
}
will, aber seine Arbeit nicht richtig
i Liste auf drei Arten Array von ganzen Zahlen sortiert werden soll, boolean und Datum als Sie können in meinem Code sehen.
"aber es funktioniert nicht richtig" define nicht "richtig funktioniert". Bitte fügen Sie ein [MCVE] (http://stackoverflow.com/help/mcve) – SomeJavaGuy
Verwenden Sie 'dannComparting' –
Was meinst du mit" nicht funktioniert "? Könntest du mich ausführlicher machen? –