Java 8收集对象中已经存在的列表 [英] Java 8 collecting the list that is already present in object

查看:73
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆