I have this HashMap that I need to print out in ascending order according to the values contained in it (not the keys
You can use a list of the entry set rather than the key set and it is a more natural choice given you are sorting based on the value. This avoids a lot of unneeded lookups in the sorting and printing of the entries.
Map map = ...
List> listOfEntries = new ArrayList>(map.entrySet());
Collections.sort(listOfEntries, new SortByValueComparator());
for(Map.Entry entry: listOfEntries)
System.out.println(entry);
static class SortByValueComparator implements Comparator> {
public int compareTo(Map.Entry e1, Map.Entry e2) {
return e1.getValue().compateTo(e2.getValue());
}
}