/**
* @author lautturi.com
* Java example: sort map/treemap/hashmap by key/value
*/
import java.util.*;
public class Lautturi {
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(5, "Apple");
map.put(7, "banana");
map.put(1, "Cherry");
map.put(33, "Orange");
map.put(9, "pear");
map.put(23, "Lautturi");
List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
// order by key
// return (o1.getKey()).compareTo(o2.getKey()); // Positive order/Natural Order
// return -(o2.getKey()).compareTo(o1.getKey()); // Positive order/Natural Order
// return -(o1.getKey()).compareTo(o2.getKey()); // Reverse order
return (o2.getKey()).compareTo(o1.getKey()); // Reverse order
// sort list/map by value in java
// return (o1.getValue()).compareTo(o2.getValue()); // Positive order/Natural Order
// return -(o2.getValue()).compareTo(o1.getValue()); // Positive order/Natural Order
// return -(o1.getValue()).compareTo(o2.getValue()); // Reverse order
// return (o2.getValue()).compareTo(o1.getValue()); // Reverse order
}
});
System.out.println("Map: " + map);
System.out.println("List: " + list);
for (Map.Entry<Integer, String> entry : list) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
output:
Map: {1=Cherry, 5=Apple, 7=banana, 9=pear, 23=Lautturi, 33=Orange}
List: [33=Orange, 23=Lautturi, 9=pear, 7=banana, 5=Apple, 1=Cherry]
33:Orange
23:Lautturi
9:pear
7:banana
5:Apple
1:Cherry