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.add(E) alone will not
change the behavior of ForwardingCollection.addAll(java.util.Collection<? extends E>), 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.StandardDescendingSet
A sensible implementation of
NavigableSet.descendingSet() in terms of the other methods
of NavigableSet, notably including NavigableSet.descendingIterator(). |
| Modifier | Constructor and Description |
|---|---|
protected |
ForwardingNavigableSet()
Constructor for use by subclasses.
|
| Modifier and Type | Method and Description |
|---|---|
E |
ceiling(E e)
Returns the least element in this set greater than or equal to
the given element, or
null if there is no such element. |
protected abstract NavigableSet<E> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
Iterator<E> |
descendingIterator()
Returns an iterator over the elements in this set, in descending order.
|
NavigableSet<E> |
descendingSet()
Returns a reverse order view of the elements contained in this set.
|
E |
floor(E e)
Returns the greatest element in this set less than or equal to
the given element, or
null if there is no such element. |
NavigableSet<E> |
headSet(E toElement,
boolean inclusive)
Returns a view of the portion of this set whose elements are less than
(or equal to, if
inclusive is true) toElement. |
E |
higher(E e)
Returns the least element in this set strictly greater than the
given element, or
null if there is no such element. |
E |
lower(E e)
Returns the greatest element in this set strictly less than the
given element, or
null if there is no such element. |
E |
pollFirst()
Retrieves and removes the first (lowest) element,
or returns
null if this set is empty. |
E |
pollLast()
Retrieves and removes the last (highest) element,
or returns
null if this set is empty. |
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<E> |
standardHeadSet(E toElement)
A sensible definition of
ForwardingSortedSet.headSet(Object) 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<E> |
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<E> |
standardSubSet(E fromElement,
E toElement)
A sensible definition of
ForwardingSortedSet.subSet(Object, Object) in terms of the
subSet(Object, boolean, Object, boolean) method. |
protected SortedSet<E> |
standardTailSet(E fromElement)
A sensible definition of
ForwardingSortedSet.tailSet(Object) in terms of the
tailSet(Object, boolean) method. |
NavigableSet<E> |
subSet(E fromElement,
boolean fromInclusive,
E toElement,
boolean toInclusive)
Returns a view of the portion of this set whose elements range from
fromElement to toElement. |
NavigableSet<E> |
tailSet(E fromElement,
boolean inclusive)
Returns a view of the portion of this set whose elements are greater
than (or equal to, if
inclusive is true) fromElement. |
comparator, first, headSet, last, standardContains, standardRemove, subSet, tailSetequals, hashCode, standardEquals, standardHashCode, standardRemoveAlladd, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, standardAddAll, standardClear, standardContainsAll, standardIsEmpty, standardRetainAll, standardToArray, standardToArray, standardToString, toArray, toArraytoStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitheadSet, iterator, subSet, tailSetcomparator, first, lastprotected ForwardingNavigableSet()
protected abstract NavigableSet<E> delegate()
ForwardingObjectForwardingSet.delegate(). Concrete subclasses override this method to supply
the instance being decorated.delegate in class ForwardingSortedSet<E>public E lower(E e)
java.util.NavigableSetnull if there is no such element.lower in interface NavigableSet<E>e - the value to matche,
or null if there is no such elementprotected 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.public E floor(E e)
java.util.NavigableSetnull if there is no such element.floor in interface NavigableSet<E>e - the value to matche,
or null if there is no such elementprotected 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.public E ceiling(E e)
java.util.NavigableSetnull if there is no such element.ceiling in interface NavigableSet<E>e - the value to matche,
or null if there is no such elementprotected 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.public E higher(E e)
java.util.NavigableSetnull if there is no such element.higher in interface NavigableSet<E>e - the value to matche,
or null if there is no such elementprotected 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()
java.util.NavigableSetnull if this set is empty.pollFirst in interface NavigableSet<E>null if this set is emptyprotected 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()
java.util.NavigableSetnull if this set is empty.pollLast in interface NavigableSet<E>null if this set is emptyprotected 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()
java.util.NavigableSetremove operation), the results of
the iteration are undefined.
The returned set has an ordering equivalent to
Collections.reverseOrder(comparator()).
The expression s.descendingSet().descendingSet() returns a
view of s essentially equivalent to s.
descendingSet in interface NavigableSet<E>public Iterator<E> descendingIterator()
java.util.NavigableSetdescendingSet().iterator().descendingIterator in interface NavigableSet<E>public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
java.util.NavigableSetfromElement to toElement. If fromElement and
toElement are equal, the returned set is empty unless fromInclusive and toInclusive are both true. The returned set
is backed by this set, so changes in the returned set are reflected in
this set, and vice-versa. The returned set supports all optional set
operations that this set supports.
The returned set will throw an IllegalArgumentException
on an attempt to insert an element outside its range.
subSet in interface NavigableSet<E>fromElement - low endpoint of the returned setfromInclusive - true if the low endpoint
is to be included in the returned viewtoElement - high endpoint of the returned settoInclusive - true if the high endpoint
is to be included in the returned viewfromElement, inclusive, to toElement, exclusive@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.standardSubSet in class ForwardingSortedSet<E>public NavigableSet<E> headSet(E toElement, boolean inclusive)
java.util.NavigableSetinclusive is true) toElement. The
returned set is backed by this set, so changes in the returned set are
reflected in this set, and vice-versa. The returned set supports all
optional set operations that this set supports.
The returned set will throw an IllegalArgumentException
on an attempt to insert an element outside its range.
headSet in interface NavigableSet<E>toElement - high endpoint of the returned setinclusive - true if the high endpoint
is to be included in the returned viewinclusive is true) toElementprotected 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)
java.util.NavigableSetinclusive is true) fromElement.
The returned set is backed by this set, so changes in the returned set
are reflected in this set, and vice-versa. The returned set supports
all optional set operations that this set supports.
The returned set will throw an IllegalArgumentException
on an attempt to insert an element outside its range.
tailSet in interface NavigableSet<E>fromElement - low endpoint of the returned setinclusive - true if the low endpoint
is to be included in the returned viewfromElementprotected 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.Copyright © 2010-2013. All Rights Reserved.