導(dǎo)航集是一個有序集,允許您使用其子集在各種方式。
NavigableSet
表示Java集合中的可導(dǎo)航集合框架。 NavigableSet
接口繼承了SortedSet接口和擴(kuò)展 SortedSet
。
NavigableSet
界面可以以相反的順序?qū)Ш郊吓cSortedSet中定義的順序相比。
headSet()
, tailSet()
和 subSet()
從 NavigableSet
接口接受布爾標(biāo)志以將元素包括在子集邊界的開始或結(jié)束處。
lower(),floor(),higher()和ceiling()從NavigableSet接口搜索基于搜索條件的元素。
lower()
方法返回小于指定元素的最大元素。
floor()
方法返回 NavigableSet
中小于或等于指定元素的最大元素。
higher()
方法返回最小元素大于指定元素的 NavigableSet
。
ceiling()
方法返回 NavigableSet
中大于或等于指定元素的最小元素。
pollFirst()
和 pollLast()
分別檢索和刪除 NavigableSet
的第一個和最后一個元素。 如果NavigableSet為空,它們返回null。
TreeSet
類是 NavigableSet
接口的實現(xiàn)類之一。我們可以使用 TreeSet
作為集合,排序集合和可導(dǎo)航集合。
import java.util.NavigableSet; import java.util.TreeSet; public class Main { public static void main(String[] args) { NavigableSet<Integer> ns = new TreeSet<>(); ns.add(0); ns.add(1); ns.add(2); ns.add(3); ns.add(4); ns.add(5); ns.add(6); // Get a reverse view of the navigable set NavigableSet<Integer> reverseNs = ns.descendingSet(); // Print the normal and reverse views System.out.println("Normal order: " + ns); System.out.println("Reverse order: " + reverseNs); NavigableSet<Integer> threeOrMore = ns.tailSet(3, true); System.out.println("3 or more: " + threeOrMore); System.out.println("lower(3): " + ns.lower(3)); System.out.println("floor(3): " + ns.floor(3)); System.out.println("higher(3): " + ns.higher(3)); System.out.println("ceiling(3): " + ns.ceiling(3)); System.out.println("pollFirst(): " + ns.pollFirst()); System.out.println("Navigable Set: " + ns); System.out.println("pollLast(): " + ns.pollLast()); System.out.println("Navigable Set: " + ns); System.out.println("pollFirst(): " + ns.pollFirst()); System.out.println("Navigable Set: " + ns); System.out.println("pollFirst(): " + ns.pollFirst()); System.out.println("Navigable Set: " + ns); System.out.println("pollFirst(): " + ns.pollFirst()); System.out.println("Navigable Set: " + ns); System.out.println("pollFirst(): " + ns.pollFirst()); System.out.println("pollLast(): " + ns.pollLast()); } }
上面的代碼生成以下結(jié)果。
更多建議: