【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, ...
最新文章
- node.js写一个json服务
- localhost访问IIS资源突然不好使了
- mplus 软件_Mplus 7.4 软件及代码
- 法嵌入互操作类型“SHDocVw.ShellWindowsClass”请改用适用的接口-解决方法
- 性能测试, 压力测试 , 负载测试和 容量测试 的区别与联系
- 玩转GIT系列之【git切换到某个tag之后提示“detached HEAD】
- 窗体间的跳转传值 1127
- Tips for vcpkg
- 为qt程序添加ico图标
- 非靶向代谢组学数据分析方法总结
- shell以分号结尾_linux shell 各种分号,括号使用方法总结
- 平安性格测试题及答案_【中国平安人寿保险平安保险性格测试特别是智商题通过率怎么样】-看准网...
- 计算机网络安全ipc默认共享,关闭远程ipc共享
- request method ‘DELETE‘ not supported报错处理
- Cubic Curve
- 软件测试周刊(第01期):古德哈特定律
- 八股文(Java基础部分)
- FFmpeg 常用命令汇总
- Android 通过 WebView 请求下载 APK
- 【代码示例】使用numpy布尔索引过滤二维数组中的行
热门文章
- cobra mysql_Go学习笔记 : cobra 包简介
- Spark学习-事件日志EventLog
- python画指数函数图像_Python exp() 指数函数
- 私域流量池变现之微信公众号开通电商直播,会比淘宝直播更能卖货吗?
- mysql hints_MySQL优化之hints
- 如何用python自动发邮件_Python | 解放双手,用Python实现自动发送邮件
- OpenCV:01图片视频的加载显示
- u-boot SPL的理解
- Ubuntu安装和配置ssh教程
- AC旁挂三层交换机管理ap,二层接入ap心得