java how to sort map/treemap/hashmap by key

www.lau‮oc.irutt‬m
java how to sort map/treemap/hashmap by key
/**
 * @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
Created Time:2017-09-27 00:22:10  Author:lautturi