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());
		}
	}
}