流操作使用方法spliterator()
內部。
這裏是ArrayList
的spliterator()
方法:
public Spliterator<E> spliterator() {
checkForComodification();
return new ArrayListSpliterator<E>(ArrayList.this, offset,
offset + this.size, this.modCount);
}
它檢查商品化,所以它看起來像stream()
操作必須在你的情況在裏面synchronized塊。
而且,SynchronizedCollection
spliterator()
(在Collections
)具有評論
public Spliterator<E> spliterator() {
return c.spliterator(); // Must be manually synched by user!
}
其類似於在iterator()
註釋:
public Iterator<E> iterator() {
return c.iterator(); // Must be manually synched by user!
}
其示出了相同的:同步圍繞stream()
操作需要(至少,如果iterator()
需要這樣的同步)。
而且最有說服力的:從SynchronizedCollection
stream()
方法:
public Stream<E> stream() {
return c.stream(); // Must be manually synched by user!
}