Home » openjdk-7 » java » util » [javadoc | source]
java.util
public interface: NavigableSet [javadoc | source]

All Implemented Interfaces:
    SortedSet

All Known Implementing Classes:
    KeySet, ConcurrentSkipListSet, KeySet, TreeSet

A 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 Comparable elements intrinsically do not permit {@code null}.)

Methods subSet(E, E) , headSet(E) , and 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.

Method from java.util.NavigableSet Summary:
ceiling,   descendingIterator,   descendingSet,   floor,   headSet,   headSet,   higher,   iterator,   lower,   pollFirst,   pollLast,   subSet,   subSet,   tailSet,   tailSet
Method from java.util.NavigableSet Detail:
 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 Iterator<E> descendingIterator()
    Returns an iterator over the elements in this set, in descending order. Equivalent in effect to {@code descendingSet().iterator()}.
 public NavigableSet<E> 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 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 SortedSet<E> headSet(E toElement)
    {@inheritDoc}

    Equivalent to {@code headSet(toElement, false)}.

 public 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 {@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 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 Iterator<E> 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 SortedSet<E> subSet(E fromElement,
    E toElement)
    {@inheritDoc}

    Equivalent to {@code subSet(fromElement, true, toElement, false)}.

 public NavigableSet<E> 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 fromInclusive} and {@code 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 {@code IllegalArgumentException} on an attempt to insert an element outside its range.

 public SortedSet<E> tailSet(E fromElement)
    {@inheritDoc}

    Equivalent to {@code tailSet(fromElement, true)}.

 public 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 {@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.