9 |
|
import java.util.AbstractCollection; |
10 |
|
import java.util.ArrayList; |
11 |
|
import java.util.Collection; |
12 |
+ |
import java.util.Collections; |
13 |
|
import java.util.Deque; |
14 |
|
import java.util.Iterator; |
15 |
|
import java.util.NoSuchElementException; |
16 |
|
import java.util.Queue; |
17 |
+ |
import java.util.Spliterator; |
18 |
+ |
import java.util.stream.Stream; |
19 |
+ |
import java.util.stream.Streams; |
20 |
+ |
import java.util.function.Consumer; |
21 |
|
|
22 |
|
/** |
23 |
|
* An unbounded concurrent {@linkplain Deque deque} based on linked nodes. |
1361 |
|
Node<E> nextNode(Node<E> p) { return pred(p); } |
1362 |
|
} |
1363 |
|
|
1364 |
+ |
Spliterator<E> spliterator() { |
1365 |
+ |
return Collections.iteratorBasedSpliterator |
1366 |
+ |
(iterator(), Spliterator.ORDERED | Spliterator.NONNULL | |
1367 |
+ |
Spliterator.CONCURRENT); |
1368 |
+ |
} |
1369 |
+ |
|
1370 |
+ |
public Stream<E> stream() { |
1371 |
+ |
return Streams.stream(spliterator()); |
1372 |
+ |
} |
1373 |
+ |
|
1374 |
+ |
public Stream<E> parallelStream() { |
1375 |
+ |
return Streams.parallelStream(spliterator()); |
1376 |
+ |
} |
1377 |
+ |
|
1378 |
|
/** |
1379 |
|
* Saves this deque to a stream (that is, serializes it). |
1380 |
|
* |