我正在尝试在 Java 中按值对 ConcurrentSkipListMap 进行排序,这是我的代码:
ConcurrentSkipListMap<String,Float> cslMap = new ConcurrentSkipListMap(new Comparator() {
public int compare(Object o1,Object o2) {
return ((Comparable)((Map.Entry)(o1)).getValue()).compareTo(((Map.Entry)(o2)).getValue());
}
});
cslMap_Map.put("B",0.2f);
cslMap_Map.put("A",0.1f);
cslMap_Map.put("C",1f);
编译时收到错误消息:
线程“主”java.lang.ClassCastException 中的异常:java.lang.String 无法转换为 java.util.Map$Entry
正确的方法是什么?
感谢您的回答,但在它的 Java 文档中,它说“地图是根据其键的自然顺序排序的,或者是根据地图创建时提供的 Comparator 排序的”,那么如何为它提供一个按其排序的 Comparator价值观?