如何使用flatMap实现此目的

问题描述 投票:1回答:2

我需要创建一个新的内部列表,并使用它来设置外部列表。如何使用flatMap。 fooList是FooDb对象的列表,从中可以创建Foo对象的列表。

final ArrayList<FooDb> fooList= getFooFromDB();    
final ArrayList<Foo> foos = new ArrayList<>();
            fooList.forEach(foo -> {
                final ArrayList<Bar> bars = new ArrayList<>();
                item.getItems()
                    .forEach(item -> bars.add(new Bar(foo.getId(), foo.getName())));
                foos.add(new Foo(0L, foo.getId(), bars));
            });
java java-8 java-stream flatmap
2个回答
4
投票

您不需要flatMap。您有两个map操作:

  1. List<Item> -> List<Foo(..., ..., List<Bar>)>

0
投票

您不需要FlatMap即可。通常必须使用FlatMap来扁平化数组的内容。在这种情况下,您需要1对1的映射,因此正确的方法是Map Function。

© www.soinside.com 2019 - 2024. All rights reserved.