我找不到答案。 我尝试将多个对象合并为一个。 模型示例
public class Model {
private List<Map<String, Object>> param1;
private List<String> param2;
}
在我的代码中,我将另一个数据转换为模型。
List<Model> models = models2.stream()
.map(Optional::get)
.map(model2 -> convert(model2))
.collect(Collectors.toList());
我尝试将转换后的模型列表聚合到一个模型。 喜欢:
Model model = models2.stream() ...etc
但我不知道如何。
最佳答案
最简单的是添加 merge
方法给你Model
类:
public class Model {
private List<HashMap<String, Object>> param1;
private List<String> param2;
public Model merge (Model other) {
this.param1.addAll(other.param1);
this.param2.addAll(other.param2);
return this;
}
}
然后reduce
您的信息流:
Model allInOne = models2.stream()
.map(Optional::get)
.map(model2 -> convert(model2))
.reduce(Model::merge)
.get();
那个merge
方法也可以是static Model merge (Model first, Model second)
或外化BinaryOperator<Model>
功能。
关于Java lambda流合并模型中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551169/