我有3个列表,List<List<List<Product>>
我想拼凑成一个。我已经阅读了几篇SO文章,但是我仍然不确定如何进行。到目前为止,我有
allProducts.stream()
.flatMap(List::Stream)
.collect(Collectors.toList());
但这仅合并两个列表,对吗?在该语句中合并所有三个的最佳方法是什么?我已经看过reduce()
的用法,但不确定如何编写。我需要进入Product
的单个列表。
答案 0 :(得分:9)
您需要链接2个flatMap
:
allProducts.stream() // Stream<List<List<Product>>>
.flatMap(List::stream) // Stream<List<Product>>
.flatMap(List::stream) // Stream<Product>
.collect(Collectors.toList()); // List<Product>