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
}
}
}