Java tutorial
The NavigableSet interface is a subinterface of SortedSet that provides methods for searching for elements. java.util.TreeSet is an implementation of NavigableSet. import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.NavigableSet; import java.util.TreeSet; public class NavigableSetDemo { public static void main(String[] args) { List<Integer> list = Arrays.asList(3, 2, 4, 1, 5); NavigableSet<Integer> ns = new TreeSet<Integer>(list); System.out.println("Ascending order (default): " + ns); Iterator<Integer> descendingIterator = ns.descendingIterator(); StringBuilder sb = new StringBuilder("Descending order: "); while (descendingIterator.hasNext()) { int m = descendingIterator.next(); sb.append(m + " "); } System.out.println(sb); int greatest = ns.lower(3); System.out.println("Lower of 3 = " + greatest); int smallest = ns.higher(3); System.out.println("Higher of 3 = " + smallest); } } /*Ascending order (default): [1, 2, 3, 4, 5] Descending order: 5 4 3 2 1 Lower of 3 = 2 Higher of 3 = 4 */