3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個贊
根據(jù) java docs MultiValuedMap
implementsMap
的 get。所以編譯器假設(shè)我們從中獲得的值類型MultiValuedMap.get()
是Double
我會Collections.sort(mvMap);
用類似的方法做一個解決方法
for (String key : mvMap.keySet()) mvMap.put(key, Collections.sort((List<Double>)mvMap.get(key)); }

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個贊
Collections.sort
需要一個可以排序的 Collection。您正在向它傳遞一個無法排序的 MultiValuedMap。相反,您需要做的是調(diào)用Collections.sort
每個單獨(dú)的 ArrayList。
像這樣的東西應(yīng)該可以工作(我還沒有看到實(shí)際的庫,但這是遵循地圖約定)
for(String s: mvMap.keySet()){ Collections.sort(mvMap.get(s)); }
遍歷每個字符串并使用給定的列表對其進(jìn)行排序

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
到目前為止,我已經(jīng)嘗試了所有的建議(謝謝!),但都收到了某種類型的不兼容錯誤。
我唯一能做的就是創(chuàng)建一個解決方法并創(chuàng)建一個新的常規(guī) HashMap 并將 ArrayList 從 mvMap 拉入 ArrayList,對其進(jìn)行排序,然后將其放入新的 HashMap。這不是超級有效,但這是我能夠想出的,并且有效。不過,如果您有任何其他建議,請告訴我,我會繼續(xù)嘗試。感謝您的幫助!
這是我添加的內(nèi)容:
//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);
}
添加回答
舉報