How to sort a treemap based on its values?

前端 未结 9 1020
萌比男神i
萌比男神i 2020-12-01 04:53

How can I sort a treemap using its values rather than the key?

9条回答
  •  天命终不由人
    2020-12-01 05:35

    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());
        }
    }
    
        

    提交回复
    热议问题