package collection.sort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class MapSorting { /** * @param args */ public static void main(String[] args) { Map<String, Integer> worldEconomy=new HashMap<String, Integer>(); worldEconomy.put("US", 14624184); // million worldEconomy.put("Germany", 3305898); worldEconomy.put("Japan", 5390897); worldEconomy.put("China", 5745133); List<String> list=new ArrayList(worldEconomy.keySet()); EconomyComparator comparator=new EconomyComparator(worldEconomy); Collections.sort(list, comparator); System.out.println(list); //[US, China, Japan, Germany] } private static class EconomyComparator implements Comparator<String> { private Map<String, Integer> economy; public EconomyComparator(Map<String, Integer> economy) { this.economy=economy; } @Override public int compare(String country1, String country2) { return economy.get(country2) - economy.get(country1); //reverse order, biggest first } } }