Java 8收集对象中已经存在的列表 [英] Java 8 collecting the list that is already present in object
本文介绍了Java 8收集对象中已经存在的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只是在寻找更好的方法来使用Java 8流来处理这种情况.对象A具有对象b的列表.我得到的是对象A的列表(列表).我需要流处理对象A的列表,并将每个对象A中的所有listB都作为一个单独的列表.
I was just searching for better way to handle this scenario using java 8 streams. Object A has list of object b. What I get is a list of object A (List). I need to stream through list of object A and get all the listB's in each of the object A as a one single list.
class A {
List<B> listB
}
我尝试了下面的方式来引发编译
I have tried the below way it throws compilation
List<A> as = someObject.getAs();
List<B> listofBs = as.stream().map(in -> in.getListB()).collect(Collectors.toList());
推荐答案
要获取所有B的单个列表,应将flatMap
用作:
To get a single list of all B's, you should use flatMap
as:
List<B> listOfBs = listOfAs.stream()
.flatMap(a -> a.getListB().stream())
.collect(Collectors.toList());
这篇关于Java 8收集对象中已经存在的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文