【Java集合框架】16 ——NavigableSet 接口
一、NavigableSet 接口 是什么
NavigableSet表示Java集合框架中的一个可导航集
。NavigableSet接口继承自SortedSet接口
。它的行为类似于SortedSet,除了SortedSet的排序机制之外,我们还有可用的导航方法
。
例如,与SortedSet中定义的顺序相比,NavigableSet接口可以以相反的顺序导航集合
。可以按升序或降序
访问和遍历NavigableSet。
实现这个接口的类是TreeSet和ConcurrentSkipListSet
。
NavigableSet 层次结构:
NavigableSet 接口声明为
public interface NavigableSet<E> extends SortedSet<E>
NavigableSet 接口 创建对象:
因为NavigableSet是一个接口,所以不能创建NavigableSet类型的对象。我们总是需要一个扩展这个列表的类来创建对象。而且,在Java 1.5中引入泛型之后,可以限制可存储在NavigableSet中的对象类型。这个类型安全集可以定义为:
NavigableSet<Obj> set = new TreeSet<Obj> ();
二、NavigableSet 接口 的操作
2.1 添加操作
为了向NavigableSet添加元素,我们可以使用add()方法。但是,TreeSet不保留插入顺序
。在内部,对于每个元素,值都按升序进行比较和排序。我们需要注意,不允许重复元素
,并且忽略所有重复元素
。此外,NavigableSet不接受空值
。
实例:
public static void main(String[] args) {NavigableSet<String> ns = new TreeSet<String>();// 添加元素ns.add("深圳");ns.add("广州");ns.add("珠海");ns.add("佛山"); ns.add("佛山"); // 忽略重复值//ns.add(null); // 添加 null , 报错:空指针System.out.println(ns);}
输出:
[佛山, 广州, 深圳, 珠海]
2.2 访问操作
添加元素后,如果想访问元素,可以使用内置方法,如contains()、first()、last()等。
实例:
public static void main(String[] args) {NavigableSet<String> ns = new TreeSet<String>();// 添加元素ns.add("深圳");ns.add("广州");ns.add("珠海");ns.add("佛山");System.out.println(ns);System.out.println("Navigable集合:"+ns);System.out.println("Contains方法: "+ " " + ns.contains("珠海"));System.out.println("首元素" + ns.first());System.out.println("尾元素" + ns.last());}
输出:
[佛山, 广州, 深圳, 珠海]
Navigable集合:[佛山, 广州, 深圳, 珠海]
Contains方法: true
首元素佛山
尾元素珠海
2.3 删除操作
可以使用remove()、pollFirst()、pollLast()方法从NavigableSet中删除这些值。
实例:
public static void main(String[] args) {NavigableSet<String> ns = new TreeSet<String>();// 添加元素ns.add("深圳");ns.add("广州");ns.add("珠海");ns.add("佛山");System.out.println("Navigable集合:"+ns);ns.remove("广州");System.out.println("删除 广州后: :" + ns);// 删除首元素ns.pollFirst();System.out.println("删除首元素后: " + ns);// 删除尾元素ns.pollLast();System.out.println("删除尾元素后 " + ns);}
输出:
Navigable集合:[佛山, 广州, 深圳, 珠海]
删除 广州后: :[佛山, 深圳, 珠海]
删除首元素后: [深圳, 珠海]
删除尾元素后 [深圳]
【Java集合框架】16 ——NavigableSet 接口相关推荐
- Java集合框架之四大接口、常用实现类,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- Java集合查找Map,Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- JavaSE入门学习34:Java集合框架之Collection接口、子接口及其实现类
一Collection接口 Collection接口定义了存取一组对象的方法,其子接口Set.List和Queen分别定义了存储方式. 使用Collection接口需要注意: 1Collection接 ...
- 5.0 java集合框架中的接口collection属于_JAVA集合框架 - osc_cyo2dovg的个人空间 - OSCHINA - 中文开源技术交流社区...
一.为什么要使用集合 单个数据,可以用变量保存: 多个数据,可以用数组保存: 但是对于存储多个数据且数量不确定的情况,使用集合: 二.集合和数组的区别 (1)数组: 1.只能保存同一种类型的数据: 2 ...
- Java集合框架及基本接口
文章目录 Collection接口及迭代器 泛型方法的使用 集合基本接口和实现 List ArrayList LinkedList ListIterator接口和Iterable接口的区别 Set H ...
- (Java集合框架)List接口
List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合.在List集合中允许出现重复的元素,所 ...
- 2014年4月5日 java集合框架总结2--List接口及其子类
List接口 Collection接口的子接口,可以使用Collection中全部方法. 有序集合,元素有索引,元素可以重复 List:特有的常见方法:有一个共性特点就是都可以操作角标. 1,添加 ...
- java集合框架——接口图+类图+遗留类图
[0]README 0.1)绝对的干货,理清 java集合框架中类和接口的层次关系:
- Java集合框架之接口Collection源码分析
本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...
最新文章
- 使用python进行utf9编码和解码
- JavaScript库开发者们的规则
- latex 常用小结
- 2020——网鼎杯 (青龙组)jocker
- pm2集群模式mysql配置_配置 PM2 一键部署
- Ribbon-负载均衡原理
- nodejs中的文件系统
- 算法入门书籍--2022.04.04
- node后台截图 box-shadow无效-解决
- 微软2016 9月笔试
- 《学习之道》第六章习惯的部分-反应程序
- forEach、for...in、for...of
- Django中admin
- php 循环删除文件,php循环删除目录及目录下的文件
- 实验一:端口扫描(X-scan)
- DELPHI利WMI获得硬盘参数
- 数车计算机编程教学caxa,CAXA数控车(数控车床编程工具)V2018.1.0 正式版
- python 处理excel公式_python 处理excel踩过的坑——data_only,公式全部丢失
- 【万人独木桥】那个夏天—后高考生活该如何安排?
- 围绕禅道介绍公司流程