2019独角兽企业重金招聘Python工程师标准>>>

java.util.NavigableSet 接口是java.util.SortedSet接口的子接口,它的行为特点和SortedSet类似。

除了拥有SortedSet的排序同能外还有一系列的导航方法。

在java6中NavigableSet只有TreeSet这一个实现类。

descendingIterator() and descendingSet()

NavigableSet original = new TreeSet();
// add somedata...
NavigableSet reverse = original.descendingSet();

descendingSet()方法返回一个与originall顺序相反的一个set集合。

返回的reverse集合是依靠original存在的,如果改变了reverse集合中的元素

同时也会对original中产生影响。

Iterator reverse = original.descendingIterator();

descendingIterator()方法允许你以迭代的方式去操作set集合并且并且不会改变集合内部顺序。

headSet(),tailSet()和subSet()

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");
// 返回元素"3"之前的所有元素集合 "headset 包含 "1","2"
// 返回的headset与original中存储的数据其实有着相同的引用
// 所以对headset的改变会作用到original上。
SortedSet headset = original.headSet("3");// boolean 类型参数代表是否包含本元素
// headset 包含 "1","2","3"
NavigableSet headset = original.headSet("3",true);

tailSet()方法工作原理headSet()方法一致,它返回的是比传入元素更大的集合。

subSet()方法则允许传入两个集合中的元素来确定起始与结束位置

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");
original.add("4");
original.add("5");// subset 中只包含"2","3"
SortedSet subset = original.subSet("2","4");// subset 中将包含"2","3","4"
NavigableSet subset = original.subSet("2",true,"4",true);

ceiling(),floor(),higher()和lower()

ceiling()方法将返回大于等于给定元素的所有元素中最小的一个元素。

floor()方法则与ceiling()相反,它返回一个小于等于指定元素的所有元素中最大的一个元素。

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");// ceilling = "2"
Object ceiling = original.ceiling("2");
// floor = "2"
Object floor = original.floor("2");

higher()方法返回大于指定元素中所有元素最小的一个元素

lower()方法与higher()相反,它返回小于指定元素中所有元素最大的一个

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");//higher = "3".
Object higher = original.higher("2");//lower = "1"
Object lower = original.lower("2");

pollFirst()和pollLst()

pollFirst()方法返回并且删除在NavigableSet中第一个元素,如果集合为空则返回null

pollLst()方法则返回并且删除NavigableSet中最后一个元素,集合为空也返回null

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");//first = "1"
Object first = original.pollFirst();//last = "3"
Object last = original.pollLast();

转载于:https://my.oschina.net/kevinair/blog/191081

Java集合7 (NavigableSet)相关推荐

  1. 【Java集合框架】16 ——NavigableSet 接口

    一.NavigableSet 接口 是什么 NavigableSet表示Java集合框架中的一个可导航集.NavigableSet接口继承自SortedSet接口.它的行为类似于SortedSet,除 ...

  2. 考考基础部分,谈谈Java集合中HashSet的原理及常用方法

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:工匠初心 cnblogs.com/LiaHon/p/1125 ...

  3. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  4. Java 集合框架 : Collection、Map

    1. Collection接口是Java集合框架的基本接口,所所有集合都继承该接口. 1.1 方法 : public interface Collection<E> extends Ite ...

  5. java集合——视图与包装器

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--视图与包装器 的相关知识: 0.2) for full source cod ...

  6. java集合——集合框架

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合框架 的相关知识: [1]集合框架 1.1) java集合类库构成了集合 ...

  7. java集合——树集(TreeSet)+对象的比较

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--树集(TreeSet)+对象的比较 的相关知识: 0.2) for full ...

  8. Java集合框架之Collection实例解析

    转载自https://blog.csdn.net/qq_28261343/article/details/52614411 0.集合引入 1)集合的由来? Java是面向对象编程语言,经常操作很多对象 ...

  9. Java 集合(初稿)

    关于集合的详细介绍,推荐Java集合系列,以下是上面博客做的总结 Java集合是Java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等 Java各个集合也是和数组一样性质的元素 ...

最新文章

  1. equal与hashcode的区别
  2. 关于AttributeError:‘Flask‘ object has no attribute ‘ensure_sync‘的报错解决
  3. 给书配代码-电力经济调度(3):计及网络安全约束的经济调度模型
  4. python自带的统计函数_NumPy统计函数的实现方法
  5. 模板:K-D tree
  6. 《程序员面试宝典》精华 底层部分
  7. [Linux: 编程]如何调试GCC段错误-转
  8. 论文页眉奇偶页不同怎么设置_什么!论文排版这么简单的吗?!
  9. Java 开发流程、运行原理、JVM 规范与实现
  10. python如何开发一个程序思路_用python编写一个合格的ftp程序,思路是怎样的?
  11. 死磕Mosek!新mosek学习笔记1:VS项目配置。
  12. JAVA上传smartupload_java使用smartupload组件实现文件上传的方法
  13. 英文单词和数字断行不折叠
  14. LuoguP4568 分层图
  15. 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
  16. 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
  17. PHP 将XML转成数组(微信回调接收方法)
  18. 2022中国汽车测试及质量监控博览会邀请函
  19. 2012总结之pcode.Class
  20. 这4类人去创业和自由职业会死得很惨

热门文章

  1. asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
  2. [每日短篇] 1D - 消除 if 的一种方法
  3. 利用正高Dolphin智能广告监测系统做好违法广告监测
  4. 快速生成apk 自动发布到网站 便于测试
  5. 企业级的开源备份工具之磁盘柜存储配置
  6. 使用Spring MVC 4构建Restful服务
  7. php 计算一个字符串在另一个字符串中出现的次数
  8. 单臂路由(实现VLAN间通信)
  9. 特别的需要名言警句提醒一下自己
  10. 典型的DIV+CSS布局——左中右版式