gpt4 book ai didi

java - 如何对 MultiValuedMap 中包含的 Double ArrayList 进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:21 24 4
gpt4 key购买 nike

我有一个 MultiValuedMap(Apache commons),其键为字符串,值存储在 double 组列表中,从文件中读取。我不需要对键进行排序,但我确实需要对与每个键关联的 ArrayList 进行排序。有办法做到这一点吗?

我尝试过 Collections.sort 但这似乎不适用于 MultiValuedMap。我还没有尝试创建比较器,但我不确定如何为 map 内的某些内容开始创建比较器。

//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 MultiValuedMap
while ((line = br.readLine()) != null) {
String[] cols = line.split(csvSplitBy);
mvMap.put(cols[4], Double.parseDouble(cols[3]));

//This gives an error
Collections.sort(mvMap);

我从 Collections.sort 得到的错误是“没有合适的排序方法(MultiValuedMap)”

我不想对键进行排序,而只是对值进行排序。所以预期的输出应该是这样的:

44 => [284.5, 289.35, 300.53, 534.0] 和41 => [311.82, 368.45, 400.2]

最佳答案

Collections.sort 需要一个可以排序的 Collection。您向它传递了一个无法排序的 MultiValuedMap。相反,您需要做的是为每个单独的 ArrayList 调用 Collections.sort

这样的东西应该可以工作(我还没有看到实际的库,但这遵循 map 约定)

for(String s: mvMap.keySet()){
Collections.sort(mvMap.get(s));
}

迭代每个字符串并使用给定的列表对其进行排序

关于java - 如何对 MultiValuedMap 中包含的 Double ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com