【发布时间】:2018-04-13 20:59:11
【问题描述】:
如果值为Short类型HashMap<Long, Short>(),如何按值排序hashmap?
当我使用像
这样的通用排序时public static <K extends Comparable<K>, V extends Comparable<V>> Map<K, V> sortByValues(final Map<K, V> map) {
Comparator<K> valueComparator = new Comparator<K>() {
public int compare(K k1, K k2) {
int compare = map.get(k1).compareTo(map.get(k2));
return compare != 0 ? compare : k1.compareTo(k2);
}
};
Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);
sortedByValues.putAll(map);
return sortedByValues;
}
我收到此错误:
java.lang.ClassCastException: java.lang.Short 不能转换为 java.lang.Integer
【问题讨论】:
-
问题可能出在您的输入数据上。你能提供一个调用这个方法的小例子吗? @Jabob G:我不同意这是重复的,问题是 ClassCastException 而不是按值排序
标签: java sorting java-7 classcastexception