I'm trying to sort a map based on different possible values in the Student object. This doesn't seem to be working for me and I can't seem to figure out why. Any help would be very appreciated. Thanks!
protected static Map<Integer, Student> sort(Map<Integer, Student> unsorterMap, String field)
{
Comparator<Integer> valueComparator =
new Comparator<Integer>()
{
public int compare(Integer k1, Integer k2)
{
int compare;
if(field.equalsIgnoreCase("name"))
{
compare = unsorterMap.get(k1).getName().compareTo(unsorterMap.get(k2).getName());
}
else
{
compare = Integer.compare(unsorterMap.get(k1).getIndex(), unsorterMap.get(k2).getIndex());
}
if (compare == 0)
return 1;
else
return compare;
}
};
Map<Integer, Student> sortedMap = new TreeMap <Integer, Student>(valueComparator);
sortedMap.putAll(unsorterMap);
return sortedMap;
}