/* Sort or order a HashMap or TreeSet or any map item by value. Write a comparator which compares by value, not by key. Entry class might hleps you here. */ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class OrderByValue { public static void main(String a[]) { Map map = new HashMap(); map.put("java", 20); map.put("C++", 45); map.put("Java2Novice", 2); map.put("Unix", 67); map.put("MAC", 26); map.put("Why this kolavari", 93); Set> set = map.entrySet(); List> list = new ArrayList>(set); Collections.sort( list, new Comparator>() { public int compare( Map.Entry o1, Map.Entry o2 ) { return (o2.getValue()).compareTo( o1.getValue() ); } } ); for(Map.Entry entry:list) { System.out.println(entry.getKey()+" ==== "+entry.getValue()); } } }