Tuesday, September 16, 2014

How to sort a map based on the values or keys

Here is an example of how to sort a map based on the values or keys:

public class TestMapComparator {

    public static final Comparator<Map.Entry<Integer,String>> valueComparator = new Comparator<Map.Entry<Integer,String>>(){
        public int compare(Map.Entry<Integer,String> map1, Map.Entry<Integer,String> map2){
             
                 return map1.getValue().compareTo(map2.getValue());
        }
       
    };
   
    public static final Comparator<Map.Entry<Integer,String>> keyComparator = new Comparator<Map.Entry<Integer,String>>(){
        public int compare(Map.Entry<Integer,String> map1, Map.Entry<Integer,String> map2){
             
                 return map1.getKey()-map2.getKey();
        }
       
    };
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "D");
        map.put(2, "A");
        map.put(3, "B");
        map.put(4, "C");
        System.out.println(map);
        List list = new LinkedList(map.entrySet());
        Collections.sort(list,TestMapComparator.valueComparator);
        System.out.println(list);
        Collections.sort(list,TestMapComparator.keyComparator);
        System.out.println(list);
       

    }

}

No comments:

Post a Comment