gpt4 book ai didi

java - 将两个包含不同对象的不同列表组合到第三个包含对象的列表作为两个列表的交叉连接

转载 作者:行者123 更新时间:2023-12-05 05:51:13 25 4
gpt4 key购买 nike

我有对象列表。每个对象都有一个Long的List和一个JsonNode的List。我想做的是用对象创建第三个列表,其中每个对象都是上述两个列表之间交叉连接的结果。

例如

class MyClass{
List<Long> _listLong;
List<JsonNode> _listJsonNode;
}

我有 MyClass 对象列表。我想要的是创建一个 MyClass 列表。

class MyClass2{
Long id;
JsonNode jsonNode;
}

这样List<MyClass2>保存 List<Long> 交叉连接的结果和 List<JsonNode> .

我可以使用循环来做同样的事情。有没有一种方法可以在 Java 中使用 Streams 实现相同的目的?

最佳答案

如果您从 MyClass 对象列表开始,您必须将其展平并为笛卡尔积使用两个嵌套流。

List<MyClass2> result = myClassList.stream().flatMap(
mc -> mc.get_listLong()
.stream()
.flatMap(i -> mc.get_listJsonNode()
.stream()
.map(js -> new MyClass2(i, js))))
.collect(Collectors.toList());

假定构造函数 MyClass2(Long, JsonNode) 存在。内部 flatMap 通过为每个 Long 元素迭代所有 JsonNode 元素来创建所需的笛卡尔积。

关于java - 将两个包含不同对象的不同列表组合到第三个包含对象的列表作为两个列表的交叉连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70419024/

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