我是 java 8 的新手。我编写了以下代码:
Stream<Stream<POLine>> list = poSearchResponseList.stream().map(poSearchResponse ->
poSearchResponse.getDeliveryDocumentLines().stream().map(deliveryDocumentLine ->
POLine.builder()
.poLineNumber(deliveryDocumentLine.getPurchaseReferenceLineNumber())
.quantity(deliveryDocumentLine.getExpectedQty())
.vnpkQty(deliveryDocumentLine.getVnpkQty())
.build()));
我想得到
List<POList>
来自这个右 watch 达式。无法理解如何将此 Stream of stream 转换为列表。
最佳答案
使用 flatMap
, 转换 Stream<Stream<POLine>>
很简单到 Stream<POLine>
:
List<POLine> output =
list.flatMap(Function.identity())
.collect(Collectors.toList());
尽管生成 List<POLine>
可能更简单直接:
List<POLine> list =
poSearchResponseList.stream()
.flatMap(posr -> posr.getDeliveryDocumentLines()
.stream()
.map(dl ->
POLine.builder()
.poLineNumber(dl.getPurchaseReferenceLineNumber())
.quantity(deliveryDocumentLine.getExpectedQty())
.vnpkQty(deliveryDocumentLine.getVnpkQty())
.build()))
.collect(Collectors.toList());
关于java - 将 Stream<Stream<T>> 转换为 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522374/