如何使用Stream.flatmap将展平的对象与展平的对象组合在一起

时间:2015-10-18 13:44:56

标签: java java-8 java-stream

我有以下类的流:

class A {
    Stream<B> bs;
}

我希望将其转换为以下类的流:

class AB {
    A a;
    B b;
    AB(A a, B b) {
        this.a = a;
        this.b = b;
    }
}

我可以看到flatMap会给我一个B流:

astream.flatMap(a -> a.bs);

但我无法弄清楚如何将一个物体传递到地图,如:

astream.flatMap(a -> a.bs).map(b -> new AB(a, b));

如果我试试这个,我会收到错误:

error: cannot find symbol

我有点期待。

1 个答案:

答案 0 :(得分:2)

您必须使用Bbs Stream的{​​{1}}映射到AB

map