第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對 MultiValuedMap 中包含的雙精度 ArrayList 進(jìn)行排序

如何對 MultiValuedMap 中包含的雙精度 ArrayList 進(jìn)行排序

叮當(dāng)貓咪 2023-04-13 16:55:41
我有一個 MultiValuedMap(Apache commons),其中包含字符串鍵和存儲在雙精度數(shù)組列表中的值,從文件中讀取。我不需要對鍵進(jìn)行排序,但我確實(shí)需要對與每個鍵關(guān)聯(lián)的 ArrayList 進(jìn)行排序。有沒有辦法做到這一點(diǎn)?我試過 Collections.sort 但它似乎不適用于 MultiValuedMap。我還沒有嘗試創(chuàng)建比較器,但我不確定如何為地圖中的某些內(nèi)容開始一個比較器。//Read file of data to be placed in MultiValuedMap BufferedReader br = new BufferedReader(new FileReader(fileName));String line = "";String csvSplitBy = ",";//Create the MultiValuedMap    MultiValuedMap<String, Double> mvMap = new ArrayListValuedHashMap<>();//Read data into MultiValuedMapwhile ((line = br.readLine()) != null) {       String[] cols = line.split(csvSplitBy);       mvMap.put(cols[4], Double.parseDouble(cols[3]));  //This gives an errorCollections.sort(mvMap);我從 Collections.sort 得到的錯誤是“沒有合適的排序方法(MultiValuedMap)”我不想對鍵進(jìn)行排序,只是對值進(jìn)行排序。所以預(yù)期的輸出應(yīng)該是這樣的:44 => [284.5, 289.35, 300.53, 534.0] 和 41 => [311.82, 368.45, 400.2]
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個贊

根據(jù) java docs MultiValuedMapimplementsMap的 get。所以編譯器假設(shè)我們從中獲得的值類型MultiValuedMap.get() 是Double

我會Collections.sort(mvMap);用類似的方法做一個解決方法

for (String key : mvMap.keySet()) 
    mvMap.put(key, Collections.sort((List<Double>)mvMap.get(key));
}


查看完整回答
反對 回復(fù) 2023-04-13
?
RISEBY

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)行排序



查看完整回答
反對 回復(fù) 2023-04-13
?
縹緲止盈

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);

}


查看完整回答
反對 回復(fù) 2023-04-13
  • 3 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號