gpt4 book ai didi

java - 如何在java中对另一个 map 内的 map 的值求和?

转载 作者:行者123 更新时间:2023-11-30 02:31:56 25 4
gpt4 key购买 nike

我有这个映射,里面有另一个 HashMap。如何对内部映射的值求和并进行比较?

map 大小也是可变的。因此,我正在寻找一种适用于各种尺寸 map 的解决方案。

{Team2={Alex=0, Tom=20}, Team1={John=0, Ammy=9, Monica=1}, Team3{...}, ...}

团队值(value)观 --> {Alex=0, Tom=20}, {John=0, Ammy=9, Monica=1} ...

这些值的值为 --> {0,20}, {0,9,1}...

我只想将这些值相加并找到最大的值。

 for(int i = 0 ; i < teamNameList.size() ; i++){
int sum = sum + teams.get(teamNameList.get(i)).values().values();
}

最佳答案

您可以通过条目,计算每个条目的总数并将条目收集回新的 map ,例如:

Map<String, Map<String, Integer>> map = new HashMap<>();
Map<String, Integer> data = new HashMap<>();
data.put("Alex", 10);
data.put("Tom", 20);
data.put("John", 30);
map.put("team1", data);

Map<String, Integer> totals = map.entrySet()
.stream()
.map(e -> new AbstractMap.SimpleEntry<>(e.getKey(), e.getValue().entrySet().stream().mapToInt(Map.Entry::getValue).sum()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

System.out.println(totals);

关于java - 如何在java中对另一个 map 内的 map 的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44085387/

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