how to sort a hashmap based on values in java code example
Example: Sorting HashMap by values in java
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class SortHashMapByValue
{
public static void main(String[] args)
{
HashMap<String, Integer> hash = new HashMap<String, Integer>();
hash.put("Toyota", 78);
hash.put("Skoda", 69);
hash.put("Honda", 93);
hash.put("Audi", 59);
hash.put("Chevrolet", 39);
hash.put("Hyundai", 56);
Map<String, Integer> map = sortByValue(hash);
System.out.println("Sorting hashmap by values in java: ");
for(Map.Entry<String, Integer> me : map.entrySet())
{
System.out.println("Key = " + me.getKey() + ", Value = " + me.getValue());
}
}
public static HashMap<String, Integer> sortByValue(HashMap<String, Integer> hm)
{
List<Map.Entry<String, Integer>> list = new LinkedList<Map.Entry<String, Integer>>(hm.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>()
{
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2)
{
return (o1.getValue()).compareTo(o2.getValue());
}
});
HashMap<String, Integer> ha = new LinkedHashMap<String, Integer>();
for(Map.Entry<String, Integer> me : list)
{
ha.put(me.getKey(), me.getValue());
}
return ha;
}
}