gpt4 book ai didi

Java 8 - 用列表拼合 map

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:36 24 4
gpt4 key购买 nike

我有一个结构,例如 Map <String,List<Map<String,Object>> .我想按如下方式将函数应用于 map 。该方法采用 key 并使用 map <String,Object>的名单。每个key有几个Map <String,Object>在列表中。我如何为 Map <String,Object> 的每个值将 process 方法应用于 map 的键?我能够使用 forEach 循环(见下文),但我觉得这不是以功能方式解决问题的最佳方法。

TypeProcessor p=new TypeProcessor.instance();

//Apply this function to the key and each map from the list
// The collect the Result returned in a list.
Result process(String key, Map<String,Object> dataPoints);
List<Result> list = new ArrayList<>();
map.forEach(key,value) -> {
value.forEach(innerVal -> {
Result r=p.process(key,innerVal);
list.add(r):
});
});

最佳答案

从您的代码看来,您希望对整个 Map 应用 process,因此您可以这样做:

 List<Result> l = map.entrySet()
.stream()
.flatMap(e -> e.getValue().stream().map(value -> process(e.getKey(), value)))
.collect(Collectors.toList());

关于Java 8 - 用列表拼合 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47784501/

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