3 回答
TA貢獻1784條經驗 獲得超7個贊
根據 java docs MultiValuedMapimplementsMap的 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個贊
到目前為止,我已經嘗試了所有的建議(謝謝?。际盏搅四撤N類型的不兼容錯誤。
我唯一能做的就是創建一個解決方法并創建一個新的常規 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);
}
添加回答
舉報
