Listのソートは分かったのですが、Mapクラスのソートがしたくなったので、stackoverflowを参考に作成しました。
そのときのメモ
import java.util.Collections; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; public class MapUtil { public static <K, V extends Comparable<? super V>>Map<K, V> sortByKey(Map<K, V> map){ List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>( map.entrySet() ); Collections.sort(list, new Comparator<Map.Entry<K, V>>() { @Override public int compare(Map.Entry<K, V> lhs, Map.Entry<K, V> rhs) { return (Integer.valueOf((String)rhs.getKey())).compareTo( Integer.valueOf((String) lhs.getKey()) ); } }); Map<K, V>result = new LinkedHashMap<K, V>(); for(Map.Entry<K, V>entry: list){ result.put(entry.getKey(), entry.getValue()); } return result; } public static <K, V extends Comparable<? super V>>Map<K, V> sortByValue(Map<K, V> map){ List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>( map.entrySet() ); Collections.sort(list, new Comparator<Map.Entry<K, V>>() { @Override public int compare(Map.Entry<K, V> lhs, Map.Entry<K, V> rhs) { return (lhs.getValue()).compareTo( rhs.getValue() ); } }); Map<K, V>result = new LinkedHashMap<K, V>(); for(Map.Entry<K, V>entry: list){ result.put(entry.getKey(), entry.getValue()); } return result; } }
他にも方法はあると思いますが、このクラスを使用する事でMapクラスのソートは出来るようになりました。stackoverflow.com