我需要创建一个新的内部列表,并使用它来设置外部列表。如何使用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));
});
您不需要flatMap
。您有两个map
操作:
List<Item> -> List<Foo(..., ..., List<Bar>)>
和您不需要FlatMap即可。通常必须使用FlatMap来扁平化数组的内容。在这种情况下,您需要1对1的映射,因此正确的方法是Map Function。