先日の記事ではStreamの基本的な生成処理について述べた。 今回はStreamの内部処理で扱われるSpliteratorについて解説する。 Spliterator Spliteratorは分割可能なイテレータであり、Streamの低レベルAPI用のインターフェースである(名前の由来はsplitとiteretorの合成と思われる)。コレクションの繰り返しにはIteratorが使われるように、Streamの要素の走査は内部的にSpliteratorを用いている。 Spliteratorには 要素を2つに分割する trySplitメソッドがあり、並列ストリームで各スレッドに要素を分割する方法として使用されている。 また中間・終端走査や、並列処理を効率化するヒントとして、characteristics(性質)、 estimateSize(サイズ)等の属性を持つ(characteristicsにつ