Programming > Java > java > util > stream
Dec 20, 2014
Dec 20, 2014
N/A Views
MD
warning
この記事は2年以上前に更新されたものです。情報が古くなっている可能性があります。

いつも忘れるのでメモ

IteratorからSpliteratorに変換するのがポイント。

Iterator<T> iterator = ...;
Stream<T> stream = StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED), false);

サイズが固定長の場合はSpliterators#spliterator(Iterator<? extends T> iterator, long size, int characteristics)を使う。

ちなみにcharacteristics(上記例ではORDERED)を指定するとストリームが最適化されるみたい。種類はJavaDoc参照。なんでEnumじゃないんだ

Iterableの場合は、spliterator()メソッドで直接Spliteratorに変換できるので、

Iterable<T> iterable = ...;
Stream<T> stream = StreamSupport.stream(iterable.spliterator(), false);

でOK。

Found a mistake? Update the entry.
Share this article: