亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

掌握 Java NavigableSet 接口:导航、排序与实战示例

Java NavigableSet 接口

本教程通过实例讲解 Java NavigableSet 接口及其方法。

NavigableSet 是 Java 集合框架中提供元素导航功能的接口,属于 SortedSet 的子类型。


实现 NavigableSet 的类

使用 NavigableSet 功能需借助实现该接口的 TreeSet 类。


如何使用 NavigableSet

需导入 java.util.NavigableSet 包,创建方式如下:

// 由 TreeSet 实现的 SortedSet
NavigableSet<String> numbers = new TreeSet<>();

此处创建了名为 numbers 的 TreeSet 类型导航集合。


NavigableSet 方法

NavigableSet 扩展了 SortedSet,因此继承其所有方法。但 headSet()、tailSet() 与 subSet() 在 NavigableSet 中重新定义,功能更强。


headSet(element, booleanValue)

返回指定 element 之前的所有元素。booleanValue 可选,默认 false。若为 true,则包含指定元素本身。


tailSet(element, booleanValue)

返回指定 element 之后的所有元素(含该元素)。booleanValue 可选,默认 true。若为 false,则不包含指定元素。


subSet(e1, bv1, e2, bv2)

返回 e1 与 e2 之间的元素(含 e1)。bv1 默认 true,bv2 默认 false。若 bv1 为 false 则不含 e1;若 bv2 为 true 则含 e2。


NavigableSet 提供多种元素导航方法:


TreeSet 中的 NavigableSet 实现

import java.util.NavigableSet;
import java.util.TreeSet;

class Main {
    public static void main(String[] args) {
        // 使用 TreeSet 创建 NavigableSet
        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 Element: 1
Last Element: 3
Removed First Element: 1
Removed Last Element: 3

更多 TreeSet 详情请见 Java TreeSet。现已掌握 NavigableSet 接口,接下来将学习其在 TreeSet 中的实现。

java

  1. 掌握 C# 接口:定义、实现与实战场景全解析
  2. 精通 Java 运算符:类型、语法与实战示例
  3. Java 注释:类型、用法与最佳实践
  4. 精通 Java if…else:控制流全解析
  5. 精通 Java super 关键字:高级用法与实战示例
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java Try-With-Resources:自动资源管理详解
  8. Java 注解详解:类型、放置位置与实战示例
  9. 掌握 Java Lambda 表达式:从基础到 Stream API 实战
  10. Java 接口 vs 抽象类:如何选择合适的抽象方式
  11. Java 接口全解析:定义契约、默认方法、多实现与标记接口
  12. Java 9 接口私有方法:增强封装与代码复用