public abstract class ForwardingNavigableSet<E> extends ForwardingSortedSet<E> implements NavigableSet <E>
Warning: The methods of ForwardingNavigableSet
forward indiscriminately to the methods of the delegate. For example, overriding ForwardingCollection
alone will not change the behavior of ForwardingCollection
, which can lead to unexpected behavior. In this case, you should override addAll
as well, either providing your own implementation, or delegating to the provided standardAddAll
method.
Each of the standard
methods uses the set's comparator (or the natural ordering of the elements, if there is no comparator) to test element equality. As a result, if the comparator is not consistent with equals, some of the standard implementations may violate the Set
contract.
The standard
methods and the collection views they return are not guaranteed to be thread-safe, even when all of the methods that they depend on are thread-safe.
Modifier and Type | Class and Description |
---|---|
protected class |
ForwardingNavigableSet
A sensible implementation of
NavigableSet in terms of the other methods of
NavigableSet , notably including
NavigableSet .
|
Modifier | Constructor and Description |
---|---|
protected |
ForwardingNavigableSet()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
E |
ceiling(E e)
|
protected abstract NavigableSet |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
Iterator |
descendingIterator()
|
NavigableSet |
descendingSet()
|
E |
floor(E e)
|
NavigableSet |
headSet(E toElement, boolean inclusive)
|
E |
higher(E e)
|
E |
lower(E e)
|
E |
pollFirst()
|
E |
pollLast()
|
protected E |
standardCeiling(E e)
|
protected E |
standardFirst()
|
protected E |
standardFloor(E e)
A sensible definition of
floor(E) in terms of the
descendingIterator method of
headSet(Object, boolean) .
|
protected SortedSet |
standardHeadSet(E toElement)
A sensible definition of
ForwardingSortedSet in terms of the
headSet(Object, boolean) method.
|
protected E |
standardHigher(E e)
|
protected E |
standardLast()
|
protected E |
standardLower(E e)
A sensible definition of
lower(E) in terms of the
descendingIterator method of
headSet(Object, boolean) .
|
protected E |
standardPollFirst()
A sensible definition of
pollFirst() in terms of the
iterator method.
|
protected E |
standardPollLast()
A sensible definition of
pollLast() in terms of the
descendingIterator method.
|
protected NavigableSet |
standardSubSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
A sensible definition of
subSet(Object, boolean, Object, boolean) in terms of the
headSet and
tailSet methods.
|
protected SortedSet |
standardSubSet(E fromElement, E toElement)
A sensible definition of
ForwardingSortedSet in terms of the
subSet(Object, boolean, Object, boolean) method.
|
protected SortedSet |
standardTailSet(E fromElement)
A sensible definition of
ForwardingSortedSet in terms of the
tailSet(Object, boolean) method.
|
NavigableSet |
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
|
NavigableSet |
tailSet(E fromElement, boolean inclusive)
|
comparator, first, headSet, last, standardContains, standardRemove, subSet, tailSet
equals, hashCode, standardEquals, standardHashCode, standardRemoveAll
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, standardAddAll, standardClear, standardContainsAll, standardIsEmpty, standardRetainAll, standardToArray, standardToArray, standardToString, toArray, toArray
toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
headSet, iterator, subSet, tailSet
comparator, first, last, spliterator
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray
parallelStream, removeIf, stream
protected ForwardingNavigableSet()
protected abstract NavigableSet<E> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
protected E standardLower(E e)
lower(E)
in terms of the
descendingIterator
method of
headSet(Object, boolean)
. If you override
headSet(Object, boolean)
, you may wish to override
lower(E)
to forward to this implementation.
protected E standardFloor(E e)
floor(E)
in terms of the
descendingIterator
method of
headSet(Object, boolean)
. If you override
headSet(Object, boolean)
, you may wish to override
floor(E)
to forward to this implementation.
protected E standardCeiling(E e)
ceiling(E)
in terms of the
iterator
method of
tailSet(Object, boolean)
. If you override
tailSet(Object, boolean)
, you may wish to override
ceiling(E)
to forward to this implementation.
protected E standardHigher(E e)
higher(E)
in terms of the
iterator
method of
tailSet(Object, boolean)
. If you override
tailSet(Object, boolean)
, you may wish to override
higher(E)
to forward to this implementation.
public E pollFirst()
protected E standardPollFirst()
pollFirst()
in terms of the
iterator
method. If you override
ForwardingCollection.iterator()
you may wish to override
pollFirst()
to forward to this implementation.
public E pollLast()
protected E standardPollLast()
pollLast()
in terms of the
descendingIterator
method. If you override
descendingIterator()
you may wish to override
pollLast()
to forward to this implementation.
protected E standardFirst()
protected E standardLast()
public NavigableSet<E> descendingSet()
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
@Beta protected NavigableSet<E> standardSubSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
subSet(Object, boolean, Object, boolean)
in terms of the
headSet
and
tailSet
methods. In many cases, you may wish to override
subSet(Object, boolean, Object, boolean)
to forward to this implementation.
protected SortedSet<E> standardSubSet(E fromElement, E toElement)
ForwardingSortedSet.subSet(Object, Object)
in terms of the
subSet(Object, boolean, Object, boolean)
method. If you override
subSet(Object, boolean, Object, boolean)
, you may wish to override
ForwardingSortedSet.subSet(Object, Object)
to forward to this implementation.
public NavigableSet<E> headSet(E toElement, boolean inclusive)
protected SortedSet<E> standardHeadSet(E toElement)
ForwardingSortedSet.headSet(Object)
in terms of the
headSet(Object, boolean)
method. If you override
headSet(Object, boolean)
, you may wish to override
ForwardingSortedSet.headSet(Object)
to forward to this implementation.
public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
protected SortedSet<E> standardTailSet(E fromElement)
ForwardingSortedSet.tailSet(Object)
in terms of the
tailSet(Object, boolean)
method. If you override
tailSet(Object, boolean)
, you may wish to override
ForwardingSortedSet.tailSet(Object)
to forward to this implementation.