A
SortedSet
extended with navigation methods reporting closest matches for given search targets. Methods
lower(E)
,
floor(E)
,
ceiling(E)
, and
higher(E)
return elements respectively less than, less than or equal, greater than or equal, and greater than a given element, returning
null
if there is no such element.
A NavigableSet
may be accessed and traversed in either ascending or descending order. The 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 pollFirst()
and pollLast()
that return and remove the lowest and highest element, if one exists, else returning null
. Methods subSet(E, boolean, E, boolean)
, headSet(E, boolean)
, and tailSet(E, boolean)
differ from the like-named SortedSet
methods in accepting additional arguments describing whether lower and upper bounds are inclusive versus exclusive. Subsets of any NavigableSet
must implement the NavigableSet
interface.
The return values of navigation methods may be ambiguous in implementations that permit null
elements. However, even in this case the result can be disambiguated by checking contains(null)
. To avoid such issues, implementations of this interface are encouraged to not permit insertion of null
elements. (Note that sorted sets of Comparable
elements intrinsically do not permit null
.)
Methods subSet(E, E)
, headSet(E)
, and tailSet(E)
are specified to return SortedSet
to allow existing implementations of SortedSet
to be compatibly retrofitted to implement NavigableSet
, but extensions and implementations of this interface are encouraged to override these methods to return NavigableSet
.
This interface is a member of the Java Collections Framework .