Java 如何使用Stream.flatmap将要展平的对象与展平的对象组合
我有一个以下类的流:Java 如何使用Stream.flatmap将要展平的对象与展平的对象组合,java,java-8,java-stream,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
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
这是我所期望的。您必须使用
map
将bs
流的B
s映射到AB
s:
List<AB> abs = astream.flatMap(a -> a.bs.map(b->new AB(a,b)))
.collect(Collectors.toList());
List abs=astream.flatMap(a->a.bs.map(b->new AB(a,b)))
.collect(Collectors.toList());
发布一个完整的最小示例。实际上,将流
保存在字段中对我来说似乎是一个值得怀疑的想法。