转换嵌套列表

时间:2017-12-13 03:11:31

标签: java algorithm list

我需要合并两个不同的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

2 个答案:

答案 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的一个大流中减少它们。