APIで日付のストリームを作るJava今回は小ネタです。前回の続編と言えなくもないかもです。APIを使って、Stream的に日付の順列を処理する方法です。インターフェイスfromDateからtoDateまでの日付の順列をStreamで返すようにします。以降、Stream<LocalDate>のことを、ここでは「日付ストリーム」と呼びます。yet}あとは、この日付ストリームを使って、forEachするなりflatMapするなりします。有限数列から日付ストリームを得る有限の数列を作ってから、map操作によりそれぞれの数を日付に変換します。dateStream;最後のコード部分3行は、通常は1行で書くところですが、意味をはっきりさせるために分割しています。無限の日付ストリーム+limitfromDateから+1日を繰り返す無限の日付ストリームを生成し、日数で制限(limit)します。コメントで誤りをご指摘いただきました。無限の日付ストリーム+takeWhileHaskellやScalaなどのtakeWhileのように、Predicate<T>を取るメソッドがあれば、日数を取得する必要も無かったんですが...残念。Java9ではtakeWhileが実装されるようですね。使い方は、未確認ですが、たぶん下記のコードをそのまま使えると思います。!x.isAfter(toDate));//それっぽいことを実現するには、Spliterators.spliteratorUnknownSizeなどを使ってできないこともないですが。(2)プロフィールid:argiusはてなブログをはじめよう!argiusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。