This example shows how NavigableSet in Java works.
A program for TreeSet implementation of NavigableSet interface with Iterator.
— A NavigableSet is nothing but a SortedSet extended with navigation methods reporting closest matches for given search targets.
— A NavigableSet may be accessed and traversed in either ascending or descending order.
— Subsets of any NavigableSet must implement the NavigableSet interface.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import java.util.Arrays; import java.util.Iterator; import java.util.NavigableSet; import java.util.TreeSet; public class NavigableSetDemo { public static void main(String[] args) { NavigableSet navigableSet = new TreeSet(Arrays.asList("X", "B", "A", "Z", "T")); Iterator iterator = navigableSet.descendingIterator(); System.out.println("Original Set :"); while (iterator.hasNext()) { System.out.println(iterator.next()); } iterator = navigableSet.iterator(); System.out.println("Sorted Navigable Set :"); while (iterator.hasNext()) { System.out.println(iterator.next()); } System.out.printf("Head Set : %s.%n", navigableSet.headSet("X")); System.out.printf("Tail Set : %s.%n", navigableSet.tailSet("T", false)); System.out.printf("Sub Set : %s.%n", navigableSet.subSet("B", true, "X", true)); System.out.printf("Last Element : %s%n", navigableSet.last()); System.out.printf("First Element : %s%n", navigableSet.first()); System.out.printf("Reverse Set : %s%n", navigableSet.descendingSet()); System.out.printf("Original Set : %s%n", navigableSet); } } |
Output:
Original Set :
Z
X
T
B
A
Sorted Navigable Set :
A
B
T
X
Z
Head Set : [A, B, T].
Tail Set : [X, Z].
Sub Set : [B, T, X].
Last Element : Z
First Element : A
Reverse Set : [Z, X, T, B, A]
Original Set : [A, B, T, X, Z]
Z
X
T
B
A
Sorted Navigable Set :
A
B
T
X
Z
Head Set : [A, B, T].
Tail Set : [X, Z].
Sub Set : [B, T, X].
Last Element : Z
First Element : A
Reverse Set : [Z, X, T, B, A]
Original Set : [A, B, T, X, Z]