I have a list of java object that have 4 members.
int id;
String name;
String age;
int order;
I am using his code to sort object fields in ascending order according to if condition.
Collections.sort(list, new Comparator<com.MyObject>() {
public int compare(com.MyObject object1, com.MyObject object2) {
if(myString.equalsIgnoreCase("name")){
return object1.getName().compareTo(object2.getName());
}else if(myString.equalsIgnoreCase("age")){
return object1.getAge().compareTo(object2.getAge());
}else{
return object1.getOrder() - object2.getOrder();
}
}
});
I want to add another condition if(myString.equalsIgnoreCase("nameReverse")) If this will be the case the list should be sorted in descending order.
The Collections class has a
reverseOrdermethod which returns a reverseComparatorfor a given comparator. IMO, it would be more cleaner to not modify theComparatorif all you want to do is get a reverseComparator.A bit of sample code: