Sorting HashMap by value in Java:
public class HashMapSortByValue {
public static void main(String[] args) {
HashMap unsortMap = new HashMap();
unsortMap.put(5l,"B");
unsortMap.put(8l,"A");
unsortMap.put(2l, "D");
unsortMap.put(7l,"C" );
System.out.println("Before sorting......");
System.out.println(unsortMap);
HashMap sortedMapAsc = sortByComparator(unsortMap);
System.out.println("After sorting......");
System.out.println(sortedMapAsc);
}
public static HashMap sortByComparator(
HashMap unsortMap) {
List> list = new LinkedList>(
unsortMap.entrySet());
Collections.sort(list, new Comparator> () {
public int compare(Map.Entry o1, Map.Entry o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
HashMap sortedMap = new LinkedHashMap();
for (Entry entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
}