一、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. node.js写一个json服务
  2. localhost访问IIS资源突然不好使了
  3. mplus 软件_Mplus 7.4 软件及代码
  4. 法嵌入互操作类型“SHDocVw.ShellWindowsClass”请改用适用的接口-解决方法
  5. 性能测试, 压力测试 , 负载测试和 容量测试 的区别与联系
  6. 玩转GIT系列之【git切换到某个tag之后提示“detached HEAD】
  7. 窗体间的跳转传值 1127
  8. Tips for vcpkg
  9. 为qt程序添加ico图标
  10. 非靶向代谢组学数据分析方法总结
  11. shell以分号结尾_linux shell 各种分号,括号使用方法总结
  12. 平安性格测试题及答案_【中国平安人寿保险平安保险性格测试特别是智商题通过率怎么样】-看准网...
  13. 计算机网络安全ipc默认共享,关闭远程ipc共享
  14. request method ‘DELETE‘ not supported报错处理
  15. Cubic Curve
  16. 软件测试周刊(第01期):古德哈特定律
  17. 八股文(Java基础部分)
  18. FFmpeg 常用命令汇总
  19. Android 通过 WebView 请求下载 APK
  20. 【代码示例】使用numpy布尔索引过滤二维数组中的行

热门文章

  1. cobra mysql_Go学习笔记 : cobra 包简介
  2. Spark学习-事件日志EventLog
  3. python画指数函数图像_Python exp() 指数函数
  4. 私域流量池变现之微信公众号开通电商直播,会比淘宝直播更能卖货吗?
  5. mysql hints_MySQL优化之hints
  6. 如何用python自动发邮件_Python | 解放双手,用Python实现自动发送邮件
  7. OpenCV:01图片视频的加载显示
  8. u-boot SPL的理解
  9. Ubuntu安装和配置ssh教程
  10. AC旁挂三层交换机管理ap,二层接入ap心得