重要接口—NavigableSet接口
原文作者:Programiz
原文地址:Java NavigableSet接口
目录
如何使用NavigableSet?
NavigableSet的方法
用于导航的方法
TreeSet类中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 TreeSetNavigableSet<Integer> numbers = new TreeSet<>();// Insert elements to the setnumbers.add(1);numbers.add(2);numbers.add(3);System.out.println("NavigableSet: " + numbers);// Access the first elementint firstElement = numbers.first();System.out.println("First Number: " + firstElement);// Access the last elementint lastElement = numbers.last();System.out.println("Last Element: " + lastElement);// Remove the first elementint number1 = numbers.pollFirst();System.out.println("Removed First Element: " + number1);// Remove the last elementint 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接口相关推荐
- 【Java集合框架】16 ——NavigableSet 接口
一.NavigableSet 接口 是什么 NavigableSet表示Java集合框架中的一个可导航集.NavigableSet接口继承自SortedSet接口.它的行为类似于SortedSet,除 ...
- pythonapi是什么_python接口自动化(一)--什么是接口、接口优势、类型(详解)...
简介 经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚.接下来先看一下接口的定义. 定义 接 ...
- TypeScript基础入门 - 接口 - 继承接口
转载地址 TypeScript基础入门 - 接口 - 继承接口 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.13 为 ...
- sata接口_接口不同有啥区别?M.2和SATA接口SSD该选哪种?
随着存储技术的快速发展,如今固态硬盘已是很多人电脑里不可或缺的一款硬件.在这场存储的革命中,为了实现更快的传输速度满足不同的需求,硬盘的接口经历了各种进化与革新,也便有了我们所熟之的 SATA.M.2 ...
- 【Groovy】Groovy 方法调用 ( 使用闭包创建接口对象 | 接口中有一个函数 | 接口中有多个函数 )
文章目录 一.使用闭包创建接口对象 ( 接口中有一个函数 ) 二.使用闭包创建接口对象 ( 接口中有多个函数 ) 三.完整代码示例 一.使用闭包创建接口对象 ( 接口中有一个函数 ) 在 Groovy ...
- 【Kotlin】接口 ( 声明 | 实现 | 接口方法 | 接口属性 | 接口覆盖冲突 | 接口继承 )
文章目录 I . 接口总结 II . 接口声明 III . 接口实现 IV . 接口中的方法 V . 接口中的属性 ( 变量 / 常量 ) VI . 接口中的属性属性覆盖 ( 变量 / 常量 ) VI ...
- 【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )
文章目录 I . Kotlin 接口定义与实现 II . Kotlin 抽象类定义 III . Kotlin 类继承抽象类并实现接口 IV . Kotlin 接口与抽象类子类测试 I . Kotlin ...
- java的知识点13——多态、对象的转型(casting)、final关键字、抽象方法和抽象类、接口的作用、如何定义和使用接口?、接口的多继承、面向接口编程
多态 多态指的是同一个方法调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关). 2. 多态的存在 ...
- 列举java接口_Java接口特点列举说明
1.接口是一个特殊的抽象类,接口中的所有方法都是抽象方法,所有的属性都是静态常量,一个类可以实现多个接口 接口无修饰符和为abstract时,不能包之间调用:public修饰时,可以包之间调用,但是要 ...
最新文章
- 06-Windows Server 2012 R2 会话远程桌面-标准部署-RD网关(RemoteApp)
- linkedblockingqueue 后 take 不消化_消化不良的成因及护理
- 她16岁因汶川地震改志学医,仅27岁当上浙大博导!她说:科研是“止不住想念到失眠的对象”...
- java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果
- Spring框架----Spring的依赖注入
- setlength java_Java StringBuilder setLength()方法与示例
- Scale-Dependent 3D Geometric Features
- java logback 使用_java日志配置之logback的使用
- Spring Cloud——服务发现与注册
- [LeetCode] 100. Same Tree Java
- 另一种阶乘 函数法!
- 电脑端QQ无法打开怎么办
- 【CVPR 2021】Revisiting Knowledge Distillation: An Inheritance and Exploration Framework
- python battleship_代做Battleship作业、代写CS/Python编程语言作业、代做PlayerBoard留学生作业...
- 二十一世纪大学英语读写基础教程学习笔记(原文)——5 - Shipwrecked in Antarctica(沉船南极洲)
- 大数据体系构建数据仓库
- HTML中的幽灵节点
- 中国知网论文查重算法和修改攻略
- 2022年度学习总结
- 如何解决用户出差,脱域的问题
热门文章
- [c++]Struct和Class的区别
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer...
- vs2008中C#3.0语言的新特性
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- Node.Js同步mongdb数据
- CopyOnWriteArrayList源码解析
- 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L
- Jmeter(二十二)_jenkins配置gitlab插件与ant插件
- 大数据统计分析平台之一、Kafka单机搭建
- winform界面闪退