2629 |
|
return new KeySet<E>(m.descendingMap()); |
2630 |
|
} |
2631 |
|
@SuppressWarnings("unchecked") |
2632 |
< |
Spliterator<E> spliterator() { |
2632 |
> |
public Spliterator<E> spliterator() { |
2633 |
|
if (m instanceof ConcurrentSkipListMap) |
2634 |
|
return ((ConcurrentSkipListMap<E,?>)m).keySpliterator(); |
2635 |
|
else |
2636 |
|
return (Spliterator<E>)((SubMap<E,?>)m).keyIterator(); |
2637 |
|
} |
2638 |
– |
|
2639 |
– |
public Stream<E> stream() { |
2640 |
– |
return Streams.stream(spliterator()); |
2641 |
– |
} |
2642 |
– |
|
2643 |
– |
public Stream<E> parallelStream() { |
2644 |
– |
return Streams.parallelStream(spliterator()); |
2645 |
– |
} |
2638 |
|
} |
2639 |
|
|
2640 |
|
static final class Values<E> extends AbstractCollection<E> { |
2664 |
|
public Object[] toArray() { return toList(this).toArray(); } |
2665 |
|
public <T> T[] toArray(T[] a) { return toList(this).toArray(a); } |
2666 |
|
@SuppressWarnings("unchecked") |
2667 |
< |
Spliterator<E> spliterator() { |
2667 |
> |
public Spliterator<E> spliterator() { |
2668 |
|
if (m instanceof ConcurrentSkipListMap) |
2669 |
|
return ((ConcurrentSkipListMap<?,E>)m).valueSpliterator(); |
2670 |
|
else |
2671 |
|
return (Spliterator<E>)((SubMap<?,E>)m).valueIterator(); |
2672 |
|
} |
2681 |
– |
|
2682 |
– |
public Stream<E> stream() { |
2683 |
– |
return Streams.stream(spliterator()); |
2684 |
– |
} |
2685 |
– |
|
2686 |
– |
public Stream<E> parallelStream() { |
2687 |
– |
return Streams.parallelStream(spliterator()); |
2688 |
– |
} |
2673 |
|
} |
2674 |
|
|
2675 |
|
static final class EntrySet<K1,V1> extends AbstractSet<Map.Entry<K1,V1>> { |
2725 |
|
public Object[] toArray() { return toList(this).toArray(); } |
2726 |
|
public <T> T[] toArray(T[] a) { return toList(this).toArray(a); } |
2727 |
|
@SuppressWarnings("unchecked") |
2728 |
< |
Spliterator<Map.Entry<K1,V1>> spliterator() { |
2728 |
> |
public Spliterator<Map.Entry<K1,V1>> spliterator() { |
2729 |
|
if (m instanceof ConcurrentSkipListMap) |
2730 |
|
return ((ConcurrentSkipListMap<K1,V1>)m).entrySpliterator(); |
2731 |
|
else |
2732 |
|
return (Spliterator<Map.Entry<K1,V1>>) |
2733 |
|
((SubMap<K1,V1>)m).entryIterator(); |
2734 |
|
} |
2751 |
– |
|
2752 |
– |
public Stream<Map.Entry<K1,V1>> stream() { |
2753 |
– |
return Streams.stream(spliterator()); |
2754 |
– |
} |
2755 |
– |
|
2756 |
– |
public Stream<Map.Entry<K1,V1>> parallelStream() { |
2757 |
– |
return Streams.parallelStream(spliterator()); |
2758 |
– |
} |
2759 |
– |
|
2735 |
|
} |
2736 |
|
|
2737 |
|
/** |
3541 |
|
return new KeySet<K>(m.descendingMap()); |
3542 |
|
} |
3543 |
|
|
3544 |
< |
Spliterator<K> spliterator() { |
3544 |
> |
public Spliterator<K> spliterator() { |
3545 |
|
return m.keySpliterator(); |
3546 |
|
} |
3547 |
|
|
3573 |
– |
public Stream<K> stream() { |
3574 |
– |
return Streams.stream(spliterator()); |
3575 |
– |
} |
3576 |
– |
|
3577 |
– |
public Stream<K> parallelStream() { |
3578 |
– |
return Streams.parallelStream(spliterator()); |
3579 |
– |
} |
3580 |
– |
|
3548 |
|
} |
3549 |
|
|
3550 |
|
/** |