3 回答
TA贡献1784条经验 获得超7个赞
根据 java docs MultiValuedMap
implementsMap
的 get。所以编译器假设我们从中获得的值类型MultiValuedMap.get()
是Double
我会Collections.sort(mvMap);
用类似的方法做一个解决方法
for (String key : mvMap.keySet()) mvMap.put(key, Collections.sort((List<Double>)mvMap.get(key)); }
TA贡献1856条经验 获得超5个赞
Collections.sort
需要一个可以排序的 Collection。您正在向它传递一个无法排序的 MultiValuedMap。相反,您需要做的是调用Collections.sort
每个单独的 ArrayList。
像这样的东西应该可以工作(我还没有看到实际的库,但这是遵循地图约定)
for(String s: mvMap.keySet()){ Collections.sort(mvMap.get(s)); }
遍历每个字符串并使用给定的列表对其进行排序
TA贡献2041条经验 获得超4个赞
到目前为止,我已经尝试了所有的建议(谢谢!),但都收到了某种类型的不兼容错误。
我唯一能做的就是创建一个解决方法并创建一个新的常规 HashMap 并将 ArrayList 从 mvMap 拉入 ArrayList,对其进行排序,然后将其放入新的 HashMap。这不是超级有效,但这是我能够想出的,并且有效。不过,如果您有任何其他建议,请告诉我,我会继续尝试。感谢您的帮助!
这是我添加的内容:
//Declared with the other variables
HashMap<String, List<Double>> sortedMap = new HashMap<String, List<Double>>();
//Added after the while loop
for (String key : mvMap.keySet()) {
List<Double> list = new ArrayList<Double>(mvMap.get(key));
Collections.sort(list);
sortedMap.put(key, list);
}
添加回答
举报