/** * @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