查找每个ListMultiMap键的总和

问题描述 投票:0回答:1

我找不到一种简单的方法来查找Java中的ListMultiMap中所有键的总和。

我有一个ListMultiMap:ListMultimap<String, Long> foodCals = ArrayListMultimap.create();

其中包含具有多个值的不同键:

["19/03/2020": 77, 88, 88], ["18/03/2020": 22, 33, 21], ["17/03/2020": 77, 33, 88]

您如何找到每个密钥的总数?并得到如下输出:1-253,2-76,3-198。

类似这样的东西:

            p=0;
            for(String s : foodCals.keySet()){
                System.out.Println(p + foodCals.sumOfKey(p)) //Print the index number + the sumOfKey (sumOfKey doesn't exist).
                p++;
            }
java guava
1个回答
0
投票

没有内置功能,但是将多图作为地图(带有asMap())将为您提供每天的值的集合。从那里,您只需要对它们进行求和,例如,通过对它们进行流处理并将其转换为原语:

int p = 0;
for(Collection<Long> vals : foodCals.asMap().values()) {
    System.out.println(p + " - " + vals.stream().mapToLong(Long::longValue).sum());
    p++;
}
© www.soinside.com 2019 - 2024. All rights reserved.