14 |
|
import java.util.Iterator; |
15 |
|
import java.util.NoSuchElementException; |
16 |
|
import java.util.Queue; |
17 |
+ |
import java.util.Spliterators; |
18 |
|
import java.util.Spliterator; |
19 |
|
import java.util.stream.Stream; |
20 |
|
import java.util.stream.Streams; |
1377 |
|
Node<E> p; int n; |
1378 |
|
final ConcurrentLinkedDeque<E> q = this.queue; |
1379 |
|
if (!exhausted && (n = batch + 1) > 0 && n <= MAX_BATCH && |
1380 |
< |
((p = current) != null || (p = q.first()) != null)) { |
1380 |
> |
((p = current) != null || (p = q.first()) != null) && |
1381 |
> |
p.next != null) { |
1382 |
|
Object[] a = new Object[batch = n]; |
1383 |
|
int i = 0; |
1384 |
|
do { |
1389 |
|
} while (p != null && i < n); |
1390 |
|
if ((current = p) == null) |
1391 |
|
exhausted = true; |
1392 |
< |
return Collections.arraySnapshotSpliterator |
1392 |
> |
return Spliterators.spliterator |
1393 |
|
(a, 0, i, Spliterator.ORDERED | Spliterator.NONNULL | |
1394 |
|
Spliterator.CONCURRENT); |
1395 |
|
} |
1435 |
|
return false; |
1436 |
|
} |
1437 |
|
|
1438 |
+ |
public long estimateSize() { return Long.MAX_VALUE; } |
1439 |
+ |
|
1440 |
|
public int characteristics() { |
1441 |
|
return Spliterator.ORDERED | Spliterator.NONNULL | |
1442 |
|
Spliterator.CONCURRENT; |