重要接口—NavigableSet接口

原文作者:Programiz

原文地址:Java NavigableSet接口

目录

如何使用NavigableSet?

用于导航的方法

TreeSet类中NavigableSet的实现

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

 

如何使用NavigableSet

在 Java 中,我们必须导入java.util.NavigableSet包才能使用NavigableSet。 导入包后,将按照以下方法创建可导航集。

// SortedSet implementation by TreeSet class
NavigableSet<String> numbers = new TreeSet<>(); 

在这里,我们创建了一个名为TreeSet类的number的可导航集合。

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)返回e1e2之间的所有元素,包括e1bv1bv2是可选参数。bv1的默认值为truebv2的默认值为false。如果false作为bv1传递,则该方法返回e1e2之间的所有元素,但不包括e1。如果true作为bv2传递,则该方法返回e1e2之间的所有元素,包括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 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值