Java NavigableSet 接口
Java NavigableSet 接口
在本教程中,我们将通过一个示例了解 Java NavigableSet 接口及其方法。
NavigableSet
Java Collections 框架的接口提供了在集合元素之间导航的功能。
它被认为是一种 SortedSet。
实现NavigableSet的类
为了使用 NavigableSet
的功能 接口,我们需要使用TreeSet
实现 NavigableSet
的类 .
如何使用NavigableSet?
在 Java 中,我们必须导入 java.util.NavigableSet
使用 NavigableSet
的包 .导入包后,我们可以通过以下方式创建可导航集。
// SortedSet implementation by TreeSet class
NavigableSet<String> numbers = new TreeSet<>();
在这里,我们创建了一个名为 numbers 的导航集 TreeSet
类。
NavigableSet的方法
NavigableSet
被认为是 SortedSet
的一种 .这是因为NavigableSet
扩展了 SortedSet
界面。
因此,所有 SortedSet NavigableSet 中也有方法 .要了解这些方法的使用方法,请访问 Java SortedSet。
但是SortedSet
的一些方法 (headSet()
, tailSet()
和 subSet()
) 在 NavigableSet
中的定义不同 .
让我们看看这些方法在 NavigableSet
中是如何定义的 .
headSet(元素, booleanValue)
headSet()
方法返回指定 element 之前的可导航集的所有元素 (作为参数传递)。
booleanValue 参数是可选的。它的默认值为 false
.
如果 true
作为 booleanValue 传递 ,该方法返回指定元素之前的所有元素,包括指定元素。
tailSet(元素, booleanValue)
tailSet()
方法返回指定 element 之后的可导航集的所有元素 (作为参数传递)包括指定的元素。
booleanValue 参数是可选的。它的默认值为 true
.
如果 false
作为 booleanValue 传递 ,该方法返回指定元素之后的所有元素,不包括指定元素。
子集(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
提供各种可用于导航其元素的方法。
- descendingSet() - 反转集合中元素的顺序
- descendingIterator() - 返回一个迭代器,可用于以相反的顺序迭代集合
- 天花板() - 返回那些大于或等于指定元素的元素中的最低元素
- 地板() - 返回小于或等于指定元素的元素中最大的元素
- 更高() - 返回大于指定元素的元素中最小的元素
- 下() - 返回小于指定元素的元素中最大的元素
- 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 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。
现在我们知道了 NavigableSet
接口,我们将使用 TreeSet
来了解它的实现 类。
java