質問: Stream.concat(stream, Stream.of(t)); } ``` ### Streamが空であるかどうかの判定 Streamが空であるかどうかを以下のように実装するのは正しいのでしょうか(1はcount()が不定なため良くないのかとは思いますが)。正しい方法を教えてください。 ``` Stream stream; boolean isEmpty1() { return stream.count() <= 0; } boolean isEmpty2() { return stream.findAny().isPresent(); } ```
回答: nullでないことが保証されているものにOptionalは確かに向きませんね。使い方としては、メソッドの引数などでOptionalを要求するところに渡す際、対象の値がnullでないことを確認することでしょうか...。 Streamは1回使い切りです。一度終端操作を始めたStreamをもう一度使うことはできません。 Streamはデータ集合に対する操作を提供するものなので、「空かどうか」をチェックするのはStreamっぽくないともいえます。