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