在本教程中,我们将通过一个示例来学习 Java NavigableSet接口及其方法。
Java 集合框架的NavigableSet接口提供了在设置的元素之间导航的功能。
它被视为 SortedSet 的类型。
实现NavigableSet的类
为了使用NavigableSet接口的功能,我们需要使用实现NavigableSet的TreeSet类。

如何使用NavigableSet?
在 Java 中,我们必须导入java.util.NavigableSet包才能使用NavigableSet。 导入包后,将按照以下方法创建可导航集。
// SortedSet implementation by TreeSet classNavigableSet<String> numbers = new TreeSet<>();
在这里,我们创建了一个名为TreeSet类的number的可导航集合。
NavigableSet的方法
NavigableSet被认为是SortedSet的一种。 这是因为NavigableSet扩展了SortedSet接口。
因此,所有SortedSet方法在NavigableSet中也可用。 要了解这些方法的方式,请访问 Java SortedSet 。
但是,SortedSet中的某些方法(headSet(),tailSet()和subSet())在NavigableSet中定义不同。
让我们看看如何在NavigableSet中定义这些方法。
headSet(element, booleanValue)
headSet()方法返回指定element(作为参数传递)之前的可导航集合的所有元素。
booleanValue参数是可选的。 其默认值为false。
如果true作为booleanValue传递,则该方法返回指定元素之前的所有元素,包括指定元素。
tailSet(element, booleanValue)
tailSet()方法返回包含指定元素的指定element(作为参数传递)之后的可导航集合的所有元素。
booleanValue参数是可选的。 其默认值为true。
如果将false作为booleanValue传递,则该方法返回指定元素之后的所有元素,但不包括指定元素。
subSet(e1, bv1, e2, bv2)
subSet()方法返回e1和e2之间的所有元素,包括e1。
bv1和bv2是可选参数。bv1的默认值为true,bv2的默认值为false。
如果false作为bv1传递,则该方法返回e1和e2之间的所有元素,但不包括e1。
如果true作为bv2传递,则该方法返回e1和e2之间的所有元素,包括e1。
用于导航的方法
NavigableSet提供了可用于导航其元素的各种方法。
endingSet()- 反转集合中元素的顺序DescendingIterator()- 返回可用于以相反顺序迭代集合的迭代器ceiling()- 返回大于或等于指定元素的那些元素中的最低元素floor()- 返回小于或等于指定元素的那些元素中最大的元素upper()- 返回大于指定元素的那些元素中的最低元素lower()- 返回小于指定元素的那些元素中最大的元素pollFirst()- 返回并从集合中删除第一个元素pollLast()- 返回并从集合中删除最后一个元素
要了解有关NavigableSet的更多信息,请访问 Java NavigableSet(Java 官方文档)。
TreeSet类中NavigableSet的实现
import java.util.NavigableSet;import java.util.TreeSet;class Main {public static void main(String[] args) {// Creating NavigableSet using the TreeSetNavigableSet<Integer> numbers = new TreeSet<>();// Insert elements to the setnumbers.add(1);numbers.add(2);numbers.add(3);System.out.println("NavigableSet: " + numbers);// Access the first elementint firstElement = numbers.first();System.out.println("First Number: " + firstElement);// Access the last elementint lastElement = numbers.last();System.out.println("Last Element: " + lastElement);// Remove the first elementint number1 = numbers.pollFirst();System.out.println("Removed First Element: " + number1);// Remove the last elementint number2 = numbers.pollLast();System.out.println("Removed Last Element: " + number2);}}
输出
NavigableSet: [1, 2, 3]First Element: 1Last Element: 3Removed First Element: 1Removed Last Element: 3
要了解有关TreeSet的更多信息,请访问 Java TreeSet 。
现在我们知道了NavigableSet接口,我们将使用TreeSet类学习其实现。
