How can I sort a treemap using its values rather than the key?
That's I have done this..
package Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; class MyComparator implements Comparator { public int compare(Object o1, Object o2) { return (((Integer) o2).compareTo((Integer) o1)); } } class MyComparator1 implements Comparator { Map map; public MyComparator1(Map m) { this.map = m; } public int compare(Object o1, Object o2) { return (((String) map.get(o1)).compareTo((String) map.get(o2))); } } public class Map1 { public static void main(String[] args) { Map hmap = new HashMap(); hmap.put(5, "Ashok"); hmap.put(21, "Bhanu"); hmap.put(7, "chaman"); hmap.put(28, "dheeraj"); hmap.put(761, "edison"); hmap.put(1, "frank"); hmap.put(-6, "gopal"); hmap.put(78, "hari"); System.out.println("Hash Map:" + hmap); Map tmap = new TreeMap<>(hmap); System.out.println("Tree Map:" + tmap); MyComparator comp = new MyComparator(); Map itmap = new TreeMap<>(comp); itmap.putAll(hmap); System.out.println("Tree Map Inreverse order:" + itmap); Map orderValuemap = new TreeMap(new MyComparator1(hmap)); orderValuemap.putAll(hmap); orderValuemap.put(22,"hello"); for(Entry mp:orderValuemap.entrySet()) System.out.println("Value : "+mp.getValue()); } }