Java8 Stream语法创建pojos列表

时间:2016-10-07 09:36:51

标签: java-8 java-stream

我正在尝试学习流语法,我正在努力将一些for循环转换为流。如果这不合适,请告诉我,我会删除。

基本上我有一个pojo的列表(带有嵌套的pojos),我用它来创建一个不同的pojo的新列表 (实体到模型)。

(工作)for循环就像这样

for (Pojo1 p1 : pojo1.getPojo1List())
{
   List <String> stringList = new ArrayList<>();
   for (Pojo2 p2 : p1.GetPojo2List())
   {
      stringList.add(p2.getText());
   } 

   Pojo3 p3 = new Pojo3(p1.getMember1(), p1.getMember2(), stringList);
}

我已用流管道替换内循环

for (Pojo1 p1 : pojo1.getPojo1List())
{
    List <String> stringList = p1.GetPojo2List().stream().map(Pojo2::getText).collect(Collectors.toList());

    Pojo3 p3 = new Pojo3(p1.getMember1(), p1.getMember2(), stringList);

}

这是正常的。

我现在想要替换第一个循环,我正在努力找出要做到这一点的方法。我开始用这样的东西

pojo1.getPojo1List().stream().forEach(p1 -> new Pojo3(p1.getMember1(), p1.getMember2(), [stream from above])

这不起作用,但在我玩它太多之前,我发现由于foreach是终端操作员,这种方法可能是错误的,因为我无法收集我创建的pojos(?)

有人能指出我正确的方向吗?

0 个答案:

没有答案