Mapをvalueで降順ソート
http://d.hatena.ne.jp/techmedia-think/20080606/1212747322
これを参考に作ってみた。
コンパイラの警告を無くすために型パラメータを付けまくったら見た目がひどいことになった。
import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; public class Test { public static void main(String args[]) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 5); map.put("b", 1); map.put("c", 7); map.put("d", 3); map.put("e", 0); List<Map.Entry<String, Integer>> entries = new LinkedList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { Map.Entry<String, Integer> entry1 = (Map.Entry<String, Integer>) o1; Map.Entry<String, Integer> entry2 = (Map.Entry<String, Integer>) o2; Integer int1 = (Integer) entry1.getValue(); Integer int2 = (Integer) entry2.getValue(); return int2 - int1; } }); for (Map.Entry<String, Integer> entry : entries) { System.out.println(entry.getKey() + ", " + entry.getValue()); } } }