我需要合并两个不同的List
,其中一个嵌套在一个类中。我目前有课程:
Class B {
int b;
}
Class A {
int a;
List <B> bs;
}
我的List
数据结构如下:
List<A> as;
如何将它们转换为类似的东西?
List<C> ac;
Class C {
int a; //property class A
int b; //property class B
}
bs
中的每个A
属性元素List<A> as
具有相同的长度,
所以如果我有2个元素A
,那么还会有2个元素B
,我将有4个元素C
。
答案 0 :(得分:0)
您需要遍历as列表,在每次迭代中,然后遍历bs List,此时您将创建一个C对象并将其添加到ac列表。
正如已经提到的,如果您正在寻找为您编写的代码,这可能不适合这样做。
答案 1 :(得分:0)
最好在C:
中创建一个构造函数C(A a, B b) { this.a = a; this.b = b; }
然后
List<C> cs = as.stream()
.flatMap(a -> a.bs.stream()
.map(b -> new C(a, b)))
.collect(Collectors.toList());
对于每a
个流,如果生成c
。并且flatMap
会在c
s的一个大流中减少它们。