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);
}
添加回答
舉報