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;
}
 
    