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