gpt4 book ai didi

java - 如何使用 Guava 中的 ListMultimap 对键列表中的元素求和

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

示例:

我想求和每个键中的元素,这基本上是一个元素“双数字”的ArrayList。Guava ArrayListMultimap是这样声明的:

ListMultimap <String, Double> multimap = LinkedListMultimap.create(); 

并显示为“ArrayList的3个键”:

HH_0=[0.1, 0.4, 0.2, 0.3, 0.1], 
HH_1=[0.1,0.2],
HH_2=[0.1]

总和应存储在数组或任何简单的结构中,如以下输出:

array_sum=[1.1,0.3,0,1]

multimap 的实际大小是 8 而不是 3,因为如果任何键在其数组列表中具有多个值,则意味着该键是重复的,这就是使用 Guavamultimap 的原因,它可以将具有多个(不同或相同)值的重复键存储在 ArrayList 中,而在简单的 Hashmap 情况下则相反。

我的文章:
我提取了 Stringsarray_Str 中的键进行比较。我们假设所需的 array_sum[ ] 的长度已经以 3 开始:

double sum = 0.0;
String array_Str = {"HH_0","HH_1","HH_2"};

for (int i = 0; i < array_sum.length; i++) {
for (Entry<String, Double> entry : multimap.entries()) {


if( entry.getKey().equals(array_sum[i])) {

sum=sum+ entry.getValue();
}

}
array_sum[i]=sum;
}

非常感谢任何指导。

最佳答案

使用 Java 8 流来简化一点:

for (int i = 0; i < array_str.length; i++) {
array_sum[i] = multimap.get(array_str[i]).stream().mapToDouble(d -> d).sum();
}

关于java - 如何使用 Guava 中的 ListMultimap 对键列表中的元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59847013/

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