public interface ObjectSortedSet<K> extends ObjectSet<K>, java.util.SortedSet<K>, ObjectBidirectionalIterable<K>
SortedSet
; provides some additional methods that use polymorphism to avoid (un)boxing.
Additionally, this interface strengthens iterator()
,
SortedSet.comparator()
(for primitive types), SortedSet.subSet(Object,Object)
,
SortedSet.headSet(Object)
and SortedSet.tailSet(Object)
.
SortedSet
Modifier and Type | Method and Description |
---|---|
ObjectSortedSet<K> |
headSet(K toElement)
Returns a view of the portion of this sorted set whose elements are strictly less than
toElement . |
ObjectBidirectionalIterator<K> |
iterator()
Returns a type-specific
BidirectionalIterator on the elements in
this set. |
ObjectBidirectionalIterator<K> |
iterator(K fromElement)
Returns a type-specific
BidirectionalIterator on the elements in
this set, starting from a given element of the domain (optional operation). |
default ObjectSpliterator<K> |
spliterator()
Returns a type-specific spliterator on the elements of this sorted-set.
|
ObjectSortedSet<K> |
subSet(K fromElement,
K toElement)
Returns a view of the portion of this sorted set whose elements range from
fromElement , inclusive, to toElement , exclusive. |
ObjectSortedSet<K> |
tailSet(K fromElement)
Returns a view of the portion of this sorted set whose elements are greater than or equal to
fromElement . |
ObjectBidirectionalIterator<K> iterator(K fromElement)
BidirectionalIterator
on the elements in
this set, starting from a given element of the domain (optional operation).
This method returns a type-specific bidirectional iterator with given
starting point. The starting point is any element comparable to the
elements of this set (even if it does not actually belong to the
set). The next element of the returned iterator is the least element of
the set that is greater than the starting point (if there are no
elements greater than the starting point, hasNext()
will return
false
). The previous element of the returned iterator is
the greatest element of the set that is smaller than or equal to the
starting point (if there are no elements smaller than or equal to the
starting point, hasPrevious()
will return false
).
Note that passing the last element of the set as starting point and
calling previous()
you can traverse the
entire set in reverse order.
fromElement
- an element to start from.java.lang.UnsupportedOperationException
- if this set does not support iterators with a starting point.ObjectBidirectionalIterator<K> iterator()
BidirectionalIterator
on the elements in
this set.
This method returns a parameterised bidirectional iterator. The iterator can be moreover safely cast to a type-specific iterator.
iterator
in interface java.util.Collection<K>
iterator
in interface java.lang.Iterable<K>
iterator
in interface ObjectBidirectionalIterable<K>
iterator
in interface ObjectCollection<K>
iterator
in interface ObjectIterable<K>
iterator
in interface ObjectSet<K>
iterator
in interface java.util.Set<K>
Iterable.iterator()
Collection
.default ObjectSpliterator<K> spliterator()
SortedSet spliterators must report at least Spliterator.DISTINCT
,
Spliterator.ORDERED
, and Spliterator.SORTED
. The returned spliterator's
getComparator()
must be the same (or at the very least,
consistent with) this instance's SortedSet.comparator()
.
See SortedSet.spliterator()
for more documentation on the requirements
of the returned spliterator.
spliterator
in interface java.util.Collection<K>
spliterator
in interface java.lang.Iterable<K>
spliterator
in interface ObjectCollection<K>
spliterator
in interface ObjectIterable<K>
spliterator
in interface ObjectSet<K>
spliterator
in interface java.util.Set<K>
spliterator
in interface java.util.SortedSet<K>
Collection.spliterator()
, which was already
strengthened in the corresponding type-specific class,
but was weakened by the fact that this interface extends SortedSet
.
Also, this is generally the only spliterator
method subclasses should override.
Spliterator
for documentation on what binding policies mean)
that wraps this instance's type specific iterator(K)
.
Additionally, it reports Spliterator.SIZED
, Spliterator.DISTINCT
,
Spliterator.SORTED
, and Spliterator.ORDERED
. The reported Comparator
from Spliterator.getComparator()
will be the one reported by this instance's SortedSet.comparator()
.
Iterator
is an inherently linear API, the returned spliterator will yield limited performance gains
when run in parallel contexts, as the returned spliterator's
trySplit()
will have linear runtime.ObjectSortedSet<K> subSet(K fromElement, K toElement)
fromElement
, inclusive, to toElement
, exclusive.subSet
in interface java.util.SortedSet<K>
SortedSet.subSet(Object,Object)
SortedSet.subSet(Object,Object)
.ObjectSortedSet<K> headSet(K toElement)
toElement
.headSet
in interface java.util.SortedSet<K>
SortedSet.headSet(Object)
SortedSet.headSet(Object)
.ObjectSortedSet<K> tailSet(K fromElement)
fromElement
.tailSet
in interface java.util.SortedSet<K>
SortedSet.tailSet(Object)
SortedSet.headSet(Object)
.