Java NavigableSet 接口
NavigableSet 扩展了 SortedSet 接口,提供了几个导航方法报告与搜索目标最接近的匹配。在本教程中,我们将通过示例学习 Java NavigableSet 接口及其用法。
在本教程中,我们将通过示例学习 Java NavigableSet 接口及其用法。
Java 集合框架的 NavigableSet
扩展了 SortedSet
接口,提供了几个导航方法报告与搜索目标最接近的匹配。
NavigableSet 的实现类
TreeSet
类是 NavigableSet
接口的一个实现类,我们可以使用 TreeSet
类构造 NavigableSet
对象。
在程序中导入 java.util.NavigableSet
类和 java.util.TreeSet
就可以创建对象了:
NavigableSet<String> numbers = new TreeSet<>();
在这里,我们使用 TreeSet
类创建了一个名为 numbers
的 NavigableSet
对象。
NavigableSet 的方法
NavigableSet
接口扩展了 SortedSet
接口,拥有 SortedSet
的所有行为。
要了解如何使用 SortedSet 的方法,请访问 Java SortedSet。
但是, NavigableSet
重载了 SortedSet
中的一些方法,比如: headSet()
, tailSet()
和 subSet()
让我们看看 NavigableSet
中的这些方法。
headSet(toElement, inclusive);
headSet(toElement, inclusive)
方法返回由 toElement
元素之前的所有元素组成的 NavigableSet
集合。
inclusive
参数如果为 false
,该方法返回的集合中不包括指定元素;如果为 true
,该方法返回的集合中包括指定元素。
tailSet(fromElement, inclusive)
tailSet(fromElement, inclusive)
方法返回由 fromElement
元素之后的所有元素组成的 NavigableSet
集合。
inclusive
参数如果为 false
,该方法返回的集合中不包括指定元素;如果为 true
,该方法返回的集合中包括指定元素。
subSet(fromElement, fromInclusive, toElement, toInclusive)
subSet(fromElement, fromInclusive, toElement, toInclusive)
方法返回 fromElement
元素和 toElement
元素之间的所有元素组成的 NavigableSet
集合。
如果 fromInclusive
为 true
,则返回的集合中包括 fromElement
元素, 为 false
则不包括 fromElement
元素。
如果 toInclusive
为 true
,则返回的集合中包括 toElement
元素, 为 false
则不包括 toElement
元素。
导航方法
NavigableSet
提供了几个用于导航元素的方法:
descendingSet()
- 反转集合中元素的顺序descendingIterator()
- 返回一个迭代器,可用于以相反的顺序迭代集合ceiling()
- 返回大于或等于指定元素的元素中的最低元素floor()
- 返回小于或等于指定元素的元素中最大的元素higher()
- 返回大于指定元素的元素中最低的元素lower()
- 返回小于指定元素的元素中最大的元素pollFirst()
- 返回并移除集合中的第一个元素pollLast()
- 返回并移除集合中的最后一个元素
NavigableSet 示例
import java.util.NavigableSet;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
NavigableSet<Integer> numbers = new TreeSet<>();
// 插入元素
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("NavigableSet: " + numbers);
// 访问第一个元素
int firstElement = numbers.first();
System.out.println("First Number: " + firstElement);
// 访问最后一个元素
int lastElement = numbers.last();
System.out.println("Last Element: " + lastElement);
// 删除第一个元素
int number1 = numbers.pollFirst();
System.out.println("Removed First Element: " + number1);
// 删除最右一个元素
int number2 = numbers.pollLast();
System.out.println("Removed Last Element: " + number2);
}
}
输出
NavigableSet: [1, 2, 3]
First Number: 1
Last Element: 3
Removed First Element: 1
Removed Last Element: 3
现在我们了解了 NavigableSet
接口,我们下面要学习它的实现类 TreeSet
。