如果A定义如下:
class A {
List<B> bList;
}
如果给出A列表(列表aList),我怎样才能将它转换为包含存储在aList中每个元素中的所有B的List? 我想用番石榴来做这件事。
答案 0 :(得分:5)
这应该成功。
ImmutableList<B> listOfBs = FluentIterable.from(listOfAs)
.transformAndConcat(new Function<A, List<B>>(){
public List<B> apply(A a) {
return a.bList;
}
})
.toList();
答案 1 :(得分:1)
我知道你想要一个Guava解决方案,但这里有一个Java 8版本供所有感兴趣的人使用。
为每个A.bList
项创建一个映射A
的流,以提供给映射函数。
List<B> bList = aList.stream().map(a -> a.bList).flatMap(b -> b.stream()).collect(Collectors.toList());
以下是flatMap
:Java 8 flatMap Example的类似示例。
另外,你可以看看: