20

SpliteratorJava 8のクラスの適切なユースケース シナリオは何ですか?

4

3 に答える 3

6

通常、アプリケーション開発者はSpliteratorAPI を直接使用しません。ただし、API を提供し、独自のコレクションのようなクラスを実装する場合は、実装Spliteratorしてコレクションを API に適合させることができStreamます。これにより、関数型アプローチ、並列処理、およびその他の機能がサポートされます。

たとえば、CIDR 表記で指定されたネットワーク内の IP アドレスを列挙するユーティリティを作成しました。それは実際にはコレクションではありません。つまり、メモリ内のすべてのアドレスのリストを一度に保持するのではなく、ネットワーク番号とネットマスクのみを保持します。しかし、 を公開することでSpliterator、 に簡単に適応させることができますStream。(それぞれSpliteratorが、ネットワークのシェアで現在の IP アドレスと最大アドレスを追跡するだけです。)

コア Java ランタイムのもう 1 つの例はDirectoryStream、ファイル システムのトラバースです。

于 2015-02-09T19:20:59.993 に答える
3

SpliteratorIteratorオブジェクトのストリームを分割して反復することを可能にするタイムレスなクラスの拡張です(反復Streamする前に操作を収集することによって機能します)。

平均的な開発者がいつSpliterator. およびAPI は Java 8 で信じられないほど豊富でCollectionありCollections、ほとんどの場合、独自のインターフェイスCollectionを構築する代わりにバニラ サブクラスを使用する方が適切です。Stream

使用したい場合の例は、標準の/が定義されていないリンクされたデータ構造を使用するグラフSpliteratorのライブラリです。Spliteratorstream()

于 2015-02-09T19:10:37.860 に答える