gpt4 book ai didi

java - 从 Map> 流中收集 Map

转载 作者:行者123 更新时间:2023-11-29 06:48:17 24 4
gpt4 key购买 nike

我有一个嵌套映射,其中键作为员工姓名,值作为另一个映射,键作为公司名称,值作为多年经验,如下所示

Map<String, Map<String, Integer>> map = new HashMap<>();
Map<String, Integer> innerMap1 = new HashMap<>();
innerMap1.put("INfosys", 2);
innerMap1.put("Volvo", 2);
innerMap1.put("MH", 3);
innerMap1.put("Piterion", 1);

Map<String, Integer> innerMap2 = new HashMap<>();
innerMap2.put("Tata", 2);
innerMap2.put("Bosch", 1);
innerMap2.put("Amber", 1);
innerMap2.put("E2", 1);

map.put("Rahul", innerMap1);
map.put("Amrita", innerMap2);

现在我的函数应该返回一个 map ,其中员工姓名作为键,总经验作为值。我怎样才能使用 java 流(在单个流中)做到这一点

public Map<String, Integer> getEmployeesWithExp(Map<String, Map<String, Integer>> map) {
map.entrySet().stream().
...

return null;
}

最佳答案

可能有多种方法,但您可以收集条目到一个新映射中,并将内部映射的值减少为整数,例如像这样:

Map<String, Integer> result = 
map.entrySet().stream()
.collect(
Collectors.toMap(e -> e.getKey(), //or Map.Entry::getKey
e -> e.getValue().values().stream()
.reduce(0, Integer::sum)));

关于java - 从 Map<String, Map<String, Integer>> 流中收集 Map<String, Integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376037/

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