は、私はこのストリームを持っていると言う:Javaの8つのストリーム:折りたたみ/抽象ストリーム部品
list.stream()
.map(fn1) // part1
.map(fn2) //
.filter(fn3) //
.flatMap(fn4) // part 2
.map(fn5) //
.filter(fn6) //
.map(fn7) //
.collect(Collectors.toList())
どのように私はそれはのように見えるようにすることができます手動でFNXパーツをほどくと、それらを一緒に入れず
list.stream()
.map(fnPart1)
.map(fnPart2)
.collect(Collectors.toList())
(メンテナンス上の理由から、私はそれらをそのままにしてfnPartXを表現したい)。
Mapは、フラットマップやフィルタとは異なり、ストリーム内の項目数を変更できません。 –
@BenoitParis私は疑問を誤解しているかもしれませんが、part1を 'Stream'に、part2を 'Stream
できません。少なくとも、あなたは望むように(2つの関数を使って、最初のストリームで 'map'を使って)それをすることはできません。これは、 'map()'がストリーム*要素*(ストリーム自体ではなくストリームの各要素を変換する)上で動作するため、ストリーム自体に対する操作である要素をフィルタリングできません条件に基づくいくつかの要素)。 –