java中oriqinal_Java集合10 (NavigableMap)
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)相关推荐
- 10.JAVA中的集合(数据结构)
Java中的集合 包含以下结构: 数组-线性表 链表 栈 队列 散列表 二叉树 映射关系(key-value) List集合 特点:[有序.重复] [线性表--数组] ArrayList 定义 线程 ...
- 万字长文深入理解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 ...
- java去重复的集合_如何去除Java中List集合中的重复数据
1.循环list中的所有元素然后删除重复 public class duplicatRemoval { public static List removeDuplicate(List list){ f ...
- (转)java中对集合对象list的几种循环访问总结
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一些讲 ...
- java中的集合_Java 集合介绍,常用集合类
JAVA 集合 在处理数据的过程中经常会需要一个容器来存储某一类型的数据,Java 中的数组就是这样一种容器.但 Java 中的数组有其局限性,定义后的数组长度不可变,超出数组长度后就不能再存放数据了 ...
- java 中的集合_JAVA中的集合
JAVA中集合,是java中的基础概念,今天接着跟讲课准备课件的机会,重新整理一下关于JAVA中的集合的概念. 集合的概念 java中的集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象- ...
- Java中的集合多线程的理解
Java中的集合 1.List.Set和Queue [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwpgIu9t-1587300088779)(file:///C:\ ...
- Java中List集合介绍(炒鸡详细呦)
Java中List集合介绍 文章目录 Java中List集合介绍 1,Java集合介绍 2,List介绍 2.1 ArrayList集合 2.2 LinkedList集合 3,List常用方法 3.1 ...
- Java中Set集合是如何实现添加元素保证不重复的?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「武培轩」 Java中Set集合是如何实 ...
最新文章
- 一分钟详解VS中快速生成dll和lib方法
- 通过cordova将vue项目打包
- 一加账号app_资讯知名种草App突然被大规模下架!官方回应
- oracle gather trace,Oracle 11g新SQL Trace 10046方法
- 线程池的种类,区别和使用场景
- Apollo进阶课程 ① | 带你纵览无人车
- java编程汽水_[原创]JAVA解决喝汽水问题
- Atitit 提升开发效率的方法 提升语言级别 目录 1. 提升语言级别到4gl	1 1.1. 语言的代际关系 sql 》script 》java	1 1.2. 使用4gl dsl语言与api	1
- micro macro 区别和详解
- 在Code First中自动创建Entity模型
- CSS3之firefoxsafari背景渐变之争 - [前端技术][转]
- 计算机网络防护,计算机网络防护方法与流程
- iOS:关于加载GIF图片的思考
- From.List用法详解
- Spring5开发新功能
- SX1278与STM8L
- 2021-04 提高转化-基础销量+基础销量+晒图买家秀+精心设计的问大家
- 播放FLV文件的方法
- 织梦dedecms自定义功能函数(3):用mid调用会员名称或头像
- 如何修复硬盘坏道(360)
热门文章
- .net函数查询_数据分析-SQL-复杂查询
- php 多维数组怎么去重,php多维数组去重,该如何解决
- 让NVIDIA Jetson AGX Xavier火力全开的秘密
- apache+Tomcat均衡负载配置
- Linux修改用户密码有效期
- 【计算机网络】聊一聊那些常见的网络通信的性能指标
- 美国第一大移动运营商的5G战略:已进入预商用测试
- Zabbix邮件报警配置
- PHP框架 Phalcon 1.0.0 beta发布,实测性能强劲
- MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 1