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

java.util.NavigableMap接口是java.util.SortedMap子接口。

它相对SortedSet有更多一点的扩展。

目前java api中只有TreeMap实现了该接口。

descendingKeySet() and descendingMap()

descendingKeySet()方法返回一个与originall顺序相反的值的一个Set集合,并且返回的数据和原始的数据

其实是指向同一块内存区域,在视图上的任何修改都会影响到原始的数据。

NavigableMap original = new TreeMap();

NavigableSet reverse = original.descendingKeySet();

descendingMap()方法返回一个与original顺序相反的NavigableMap集合,

作用在该集合上的操作同时也会影响original数据。

NavigableMap descending = original.descendingMap();

headMap(), tailMap() and subMap()

headMap()方法返回小于指定元素的NavigableMap集合。

tailMap()方法返回大于指定元素的NavigableMap集合。

subMap()方法允许传入两个指定元素,返回基于两元素间的NavigableMap集合

NavigableMap original = new TreeMap();

original.put("1", "1");

original.put("2", "2");

original.put("3", "3");

// headmap 包含"1","2"

SortedMap headmap = original.headMap("3");

// 第二个boolean类型参数是否包含指定元素

// headmap 包含"1","2","3"

NavigableMap headmap = original.headMap("3",true);

//

original.put("4", "4");

original.put("5", "5");

// submap key包含"3"

SortedMap submap = original.subMap("2","4");

// submap key包含"2","3","4"

NavigableMap submap = original.subMap("2",true,"4",true);

ceilingKey(), floorKey(), higherKey() and lowerKey()

ceilingKey()方法返回大于等于指定key中的所有key中最小的一个key。

相反,floortKey()方法返回小于等于指定key中的所有key中最大的一个key。

higherKey()方法返回大于指定key中的所有key中最小的一个key。

相反,lowerKey()方法返回小于指定key中的所有key总最大的一个key。

NavigableMap original = new TreeMap();

original,put("1","1");

original,put("2","2");

original,put("3","3");

// ceilingKey = "2"

Object ceilingKey = original.ceilingKey("2");

// floorKey = "2"

Object floorKey = original.floorKey("2");

// higherKey = "3"

Object higherKey = original.higherKey("2");

// lowerKey = "1"

Object lowerKey = original.lowerKey("2");

ceilingEntry(), floorEntry(), higherEntry() and lowerEntry()

NavigableMap同时也有给定指定的key,返回对应的Entry的方法,即省去了先获取key再得到Entry了。

返回Entry的方法和返回key的方法类似,只是返回的对象是Map.Entry。

NavigableMap original = new TreeMap();

original,put("1","1");

original,put("2","2");

original,put("3","3");

// ceilingEntry = ("2","2")

Map.Entry ceilingEntry = original.ceilingEntry("2");

// floorEntry = ("2","2")

Map.Entry floorEntry= original.floorEntry("2");

// higherEntry = ("3","3")

Map.Entry higherEntry = original.higherEntry ("2");

// lowerEntry = ("1","1")

Map.Entry lowerEntry = original.lowerEntry("2");

pollFirstEntry() and pollLastEntry()

pollFirstEntry()方法返回并且删除排序最前的在NavigableMap中的entry。

pollLastEntry()方法返回并且删除排序最后的在NavigableMap中的entry。

如果NavigableMap为空,则返回null。

NavigableMap original = new TreeMap();

original.put("1","1");

original.put("2", "2");

original.put("3", "3");

// first = ("1","1")

Map.Entry first = original.pollFirstEntry();

// last = ("3","3")

Map.Entry last = original.pollLastEntry();

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

java中oriqinal_Java集合10 (NavigableMap)相关推荐

  1. 10.JAVA中的集合(数据结构)

    Java中的集合 包含以下结构: 数组-线性表 链表 栈 队列 散列表 二叉树 映射关系(key-value) List集合  特点:[有序.重复] [线性表--数组] ArrayList 定义 线程 ...

  2. 万字长文深入理解java中的集合-附PDF下载

    文章目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fai ...

  3. java去重复的集合_如何去除Java中List集合中的重复数据

    1.循环list中的所有元素然后删除重复 public class duplicatRemoval { public static List removeDuplicate(List list){ f ...

  4. (转)java中对集合对象list的几种循环访问总结

    Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一些讲 ...

  5. java中的集合_Java 集合介绍,常用集合类

    JAVA 集合 在处理数据的过程中经常会需要一个容器来存储某一类型的数据,Java 中的数组就是这样一种容器.但 Java 中的数组有其局限性,定义后的数组长度不可变,超出数组长度后就不能再存放数据了 ...

  6. java 中的集合_JAVA中的集合

    JAVA中集合,是java中的基础概念,今天接着跟讲课准备课件的机会,重新整理一下关于JAVA中的集合的概念. 集合的概念 java中的集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象- ...

  7. Java中的集合多线程的理解

    Java中的集合 1.List.Set和Queue [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwpgIu9t-1587300088779)(file:///C:\ ...

  8. Java中List集合介绍(炒鸡详细呦)

    Java中List集合介绍 文章目录 Java中List集合介绍 1,Java集合介绍 2,List介绍 2.1 ArrayList集合 2.2 LinkedList集合 3,List常用方法 3.1 ...

  9. Java中Set集合是如何实现添加元素保证不重复的?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「武培轩」 Java中Set集合是如何实 ...

最新文章

  1. 一分钟详解VS中快速生成dll和lib方法
  2. 通过cordova将vue项目打包
  3. 一加账号app_资讯知名种草App突然被大规模下架!官方回应
  4. oracle gather trace,Oracle 11g新SQL Trace 10046方法
  5. 线程池的种类,区别和使用场景
  6. Apollo进阶课程 ① | 带你纵览无人车
  7. java编程汽水_[原创]JAVA解决喝汽水问题
  8. Atitit 提升开发效率的方法 提升语言级别 目录 1. 提升语言级别到4gl 1 1.1. 语言的代际关系 sql 》script 》java 1 1.2. 使用4gl dsl语言与api 1
  9. micro macro 区别和详解
  10. 在Code First中自动创建Entity模型
  11. CSS3之firefoxsafari背景渐变之争 - [前端技术][转]
  12. 计算机网络防护,计算机网络防护方法与流程
  13. iOS:关于加载GIF图片的思考
  14. From.List用法详解
  15. Spring5开发新功能
  16. SX1278与STM8L
  17. 2021-04 提高转化-基础销量+基础销量+晒图买家秀+精心设计的问大家
  18. 播放FLV文件的方法
  19. 织梦dedecms自定义功能函数(3):用mid调用会员名称或头像
  20. 如何修复硬盘坏道(360)

热门文章

  1. .net函数查询_数据分析-SQL-复杂查询
  2. php 多维数组怎么去重,php多维数组去重,该如何解决
  3. 让NVIDIA Jetson AGX Xavier火力全开的秘密
  4. apache+Tomcat均衡负载配置
  5. Linux修改用户密码有效期
  6. 【计算机网络】聊一聊那些常见的网络通信的性能指标
  7. 美国第一大移动运营商的5G战略:已进入预商用测试
  8. Zabbix邮件报警配置
  9. PHP框架 Phalcon 1.0.0 beta发布,实测性能强劲
  10. MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 1