如果我有一个列表列表:
List<List<Map<String, Object>>> myList = new ArrayList<>();
List<Map<String, Object>> e1 = new ArrayList<>();
e1.add(new HashMap<String, Object>(){{put("test", 1);}});
e1.add(new HashMap<String, Object>(){{put("test", 6);}});
List<Map<String, Object>> e2 = new ArrayList<>();
e2.add(new HashMap<String, Object>(){{put("test", 9);}});
e2.add(new HashMap<String, Object>(){{put("test", 2);}});
myList.add(e1);
myList.add(e2);
我希望能够迭代 myList
对内部列表(e1
和 e2
)中的整数求和并返回一个列表总和:
List<Integer> result = [7, 11]
最佳答案
你可以这样做:
List<Integer> result = myList.stream()
.map(list -> list.stream()
.flatMapToInt(map -> map.values()
.stream()
.mapToInt(i -> (int) i))
.sum())
.collect(Collectors.toList());
关于java - 使用流从 map 中求和值并收集到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56974264/