NavigableSetpublic interface NavigableSet implements SortedSetA {@link SortedSet} extended with navigation methods reporting
closest matches for given search targets. Methods {@code lower},
{@code floor}, {@code ceiling}, and {@code higher} return elements
respectively less than, less than or equal, greater than or equal,
and greater than a given element, returning {@code null} if there
is no such element. A {@code NavigableSet} may be accessed and
traversed in either ascending or descending order. The {@code
descendingSet} method returns a view of the set with the senses of
all relational and directional methods inverted. The performance of
ascending operations and views is likely to be faster than that of
descending ones. This interface additionally defines methods
{@code pollFirst} and {@code pollLast} that return and remove the
lowest and highest element, if one exists, else returning {@code
null}. Methods {@code subSet}, {@code headSet},
and {@code tailSet} differ from the like-named {@code
SortedSet} methods in accepting additional arguments describing
whether lower and upper bounds are inclusive versus exclusive.
Subsets of any {@code NavigableSet} must implement the {@code
NavigableSet} interface.
The return values of navigation methods may be ambiguous in
implementations that permit {@code null} elements. However, even
in this case the result can be disambiguated by checking
{@code contains(null)}. To avoid such issues, implementations of
this interface are encouraged to not permit insertion of
{@code null} elements. (Note that sorted sets of {@link
Comparable} elements intrinsically do not permit {@code null}.)
Methods
{@link #subSet(Object, Object) subSet(E, E)},
{@link #headSet(Object) headSet(E)}, and
{@link #tailSet(Object) tailSet(E)}
are specified to return {@code SortedSet} to allow existing
implementations of {@code SortedSet} to be compatibly retrofitted to
implement {@code NavigableSet}, but extensions and implementations
of this interface are encouraged to override these methods to return
{@code NavigableSet}.
This interface is a member of the
Java Collections Framework. |
Methods Summary |
---|
public E | ceiling(E e)Returns the least element in this set greater than or equal to
the given element, or {@code null} if there is no such element.
| public java.util.Iterator | descendingIterator()Returns an iterator over the elements in this set, in descending order.
Equivalent in effect to {@code descendingSet().iterator()}.
| public java.util.NavigableSet | descendingSet()Returns a reverse order view of the elements contained in this set.
The descending set is backed by this set, so changes to the set are
reflected in the descending set, and vice-versa. If either set is
modified while an iteration over either set is in progress (except
through the iterator's own {@code remove} operation), the results of
the iteration are undefined.
The returned set has an ordering equivalent to
{@link Collections#reverseOrder(Comparator) Collections.reverseOrder}(comparator()).
The expression {@code s.descendingSet().descendingSet()} returns a
view of {@code s} essentially equivalent to {@code s}.
| public E | floor(E e)Returns the greatest element in this set less than or equal to
the given element, or {@code null} if there is no such element.
| public java.util.NavigableSet | headSet(E toElement, boolean inclusive)Returns a view of the portion of this set whose elements are less than
(or equal to, if {@code inclusive} is true) {@code 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 {@code IllegalArgumentException}
on an attempt to insert an element outside its range.
| public java.util.SortedSet | headSet(E toElement){@inheritDoc}
Equivalent to {@code headSet(toElement, false)}.
| public E | higher(E e)Returns the least element in this set strictly greater than the
given element, or {@code null} if there is no such element.
| public java.util.Iterator | iterator()Returns an iterator over the elements in this set, in ascending order.
| public E | lower(E e)Returns the greatest element in this set strictly less than the
given element, or {@code null} if there is no such element.
| public E | pollFirst()Retrieves and removes the first (lowest) element,
or returns {@code null} if this set is empty.
| public E | pollLast()Retrieves and removes the last (highest) element,
or returns {@code null} if this set is empty.
| public java.util.NavigableSet | subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)Returns a view of the portion of this set whose elements range from
{@code fromElement} to {@code toElement}. If {@code fromElement} and
{@code toElement} are equal, the returned set is empty unless {@code
fromExclusive} and {@code toExclusive} 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 {@code IllegalArgumentException}
on an attempt to insert an element outside its range.
| public java.util.SortedSet | subSet(E fromElement, E toElement){@inheritDoc}
Equivalent to {@code subSet(fromElement, true, toElement, false)}.
| public java.util.NavigableSet | tailSet(E fromElement, boolean inclusive)Returns a view of the portion of this set whose elements are greater
than (or equal to, if {@code inclusive} is true) {@code 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 {@code IllegalArgumentException}
on an attempt to insert an element outside its range.
| public java.util.SortedSet | tailSet(E fromElement){@inheritDoc}
Equivalent to {@code tailSet(fromElement, true)}.
|
|