Tuesday, 8 July 2014

HashMap Sort by Value

Following is the sample code to sort hashmap by its value using custom comparator.


package code_snippet;

import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class SortByValueHashMap {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        HashMap<String, Integer> hMap=new HashMap<String, Integer>();
        hMap.put("a", 10);
        hMap.put("b", 1);
        hMap.put("c", 100);
        System.out.println("Without Sorting="+hMap);
       

        Set<Map.Entry<String, Integer>> ss= hMap.entrySet();
        List<Map.Entry<String, Integer>> ll=new LinkedList<Map.Entry<String,Integer>>(ss);
       
        Collections.sort(ll,new MyComparator());
        System.out.println("Sorted="+ll);

    }
}

class MyComparator implements Comparator<Map.Entry<String, Integer>>
{
    @Override
    public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
        // TODO Auto-generated method stub
        return o1.getValue().compareTo(o2.getValue());
    }
}

No comments:

Post a Comment