TreeSet is an example of a navigable set. Navigable sets are described by the NavigableSet interface, whose generic type is NavigableSet, which extends SortedSet.
The following code demonstrates a navigable set based on a tree set.
import java.util.Iterator;
import java.util.NavigableSet;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
NavigableSet ns = new TreeSet();
int[] ints = { 8, -1, 4, 0, 1, -6, 9 };
for (int i : ints)
ns.add(i);
System.out.print("Ascending order: ");
Iterator iter = ns.iterator();
while (iter.hasNext()){
System.out.print(iter.next() + " ");
}
System.out.println();
System.out.print("Descending order: ");
iter = ns.descendingIterator();
while (iter.hasNext()){
System.out.print(iter.next() + " ");
}
System.out.println("\n");
outputClosestMatches(ns, 4);
outputClosestMatches(ns.descendingSet(), 12);
}
static void outputClosestMatches(NavigableSet ns, int i) {
System.out.println("Element < " + i + " is " + ns.lower(i));
System.out.println("Element <= " + i + " is " + ns.floor(i));
System.out.println("Element > " + i + " is " + ns.higher(i));
System.out.println("Element >= " + i + " is " + ns.ceiling(i));
System.out.println();
}
}
Ascending order: -6 -1 0 1 4 8 9
Descending order: 9 8 4 1 0 -1 -6
Element < 4 is 1
Element <= 4 is 4
Element > 4 is 8
Element >= 4 is 4
Element < 12 is null
Element <= 12 is null
Element > 12 is 9
Element >= 12 is 9