一、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 接口相关推荐

  1. Java集合框架之四大接口、常用实现类,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  2. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  3. Java集合查找Map,Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  4. JavaSE入门学习34:Java集合框架之Collection接口、子接口及其实现类

    一Collection接口 Collection接口定义了存取一组对象的方法,其子接口Set.List和Queen分别定义了存储方式. 使用Collection接口需要注意: 1Collection接 ...

  5. 5.0 java集合框架中的接口collection属于_JAVA集合框架 - osc_cyo2dovg的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.为什么要使用集合 单个数据,可以用变量保存: 多个数据,可以用数组保存: 但是对于存储多个数据且数量不确定的情况,使用集合: 二.集合和数组的区别 (1)数组: 1.只能保存同一种类型的数据: 2 ...

  6. Java集合框架及基本接口

    文章目录 Collection接口及迭代器 泛型方法的使用 集合基本接口和实现 List ArrayList LinkedList ListIterator接口和Iterable接口的区别 Set H ...

  7. (Java集合框架)List接口

    List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合.在List集合中允许出现重复的元素,所 ...

  8. 2014年4月5日 java集合框架总结2--List接口及其子类

    List接口 Collection接口的子接口,可以使用Collection中全部方法. 有序集合,元素有索引,元素可以重复 List:特有的常见方法:有一个共性特点就是都可以操作角标. 1,添加   ...

  9. java集合框架——接口图+类图+遗留类图

    [0]README 0.1)绝对的干货,理清 java集合框架中类和接口的层次关系:

  10. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

最新文章

  1. 使用python进行utf9编码和解码
  2. JavaScript库开发者们的规则
  3. latex 常用小结
  4. 2020——网鼎杯 (青龙组)jocker
  5. pm2集群模式mysql配置_配置 PM2 一键部署
  6. Ribbon-负载均衡原理
  7. nodejs中的文件系统
  8. 算法入门书籍--2022.04.04
  9. node后台截图 box-shadow无效-解决
  10. 微软2016 9月笔试
  11. 《学习之道》第六章习惯的部分-反应程序
  12. forEach、for...in、for...of
  13. Django中admin
  14. php 循环删除文件,php循环删除目录及目录下的文件
  15. 实验一:端口扫描(X-scan)
  16. DELPHI利WMI获得硬盘参数
  17. 数车计算机编程教学caxa,CAXA数控车(数控车床编程工具)V2018.1.0 正式版
  18. python 处理excel公式_python 处理excel踩过的坑——data_only,公式全部丢失
  19. 【万人独木桥】那个夏天—后高考生活该如何安排?
  20. 围绕禅道介绍公司流程

热门文章

  1. Vue 项目Active Reports JS PDF乱码解决
  2. LRANGE key start stop
  3. python保存ppt为高清无水印
  4. Xshell基本命令指南
  5. fmod()函数、floor()函数、ceil()函数
  6. (二)认识商业化体系
  7. 闪耀暖暖总是显示服务器连接失败,闪耀暖暖服务器异常 连接不上服务器解决方法...
  8. Linux查看服务器配置的命令
  9. 初识Chrome Performance
  10. php 实现防盗链,PHP如何实现防盗链详解