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