のストリームマップ: - 作品の下にJavaの8ストリーム - そう考えると、私はリストの地図を持っており、収集したリスト上のストリームすべての値を収集したい収集し、リスト
Map<LocalDateTime, List<PublicationSession>> effectiveDatePublicationMap;
/私は反復してやりたいが、私はむしろ、反復を使用して中間リストを作成するよりも、すべてのストリームでこれをやりたいを示しています -
List< PublicationSession> publicationsToFilter = new ArrayList<>();
for (List< PublicationSession> sessions : effectiveDatePublicationMap.values()) {
publicationsToFilter.addAll(sessions);
}
Collection<PublicationSession> wantedPublications = publicationsToFilter.stream()
.filter(pub -> PublicationStatus.valueOf(pub.getPublishStatus()) == PublicationStatus.COMPLETE)
.sorted(Comparator.comparing(PublicationSession::getCreateTime))
.collect(toMap(p -> p.getPublicationSession().getEffDateTime(), UnaryOperator.identity(), PICK_LATEST))
.values();
だから私は、その後、すべての1つのリストにリストのマップをストリーミングしたいです1つのストリームでそのサブリストを操作するのではなく、2つのステートメントで上記を実行する必要があります(つまり、uリストを反復処理でリストアし、ストリーミングをフィルタリング/ソートして収集します。
これまでのところ、マップをストリーム/収集しようとすると、コンパイルの問題が発生しました。誰もが、ストリーミングを繰り返すことなく、上記の手順を1つのステップで行う方法を示してもらえますか?それはあなたが必要とするすべてのように見える
マップ値を1つのリストで「平坦化」する必要があります。 [flatmap()](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#flatMap-java.util.function.Function-)があなたのものかもしれません探している。 –