JDK源码分析---SortedMap
文章目录
- 1.概述
- 2.接口方法介绍
- 2.1 comparator()
- 2.2 subMap(K fromKey, K toKey)
- 2.3 headMap(K toKey)
- 2.4 tailMap(K fromKey)
- 2.5 firstKey()
- 2.6 lastKey()
- 2.7 keySet();
- 2.8 values()
- 2.9 entrySet()
1.概述
定义了一个有序的Map接口,Java里有很多Map的实现类。其中TreeMap就是继承了这个接口。默认按照key值升序来构建。可以实现一个比较器,在初始化TreeMap的时候传入。
这个接口主要就是规定了实现一个有序Map的一些方法。
2.接口方法介绍
2.1 comparator()
实现类需要实现一个comparator()来返回比较器。说明需要通过这个比较器来构建一个有序的Map
2.2 subMap(K fromKey, K toKey)
因为是有序的树,所以可以根据两个key值返回在这两者之间的有序子Map,包含fromKey不包含toKey
实现类需要实现这个方法。
2.3 headMap(K toKey)
默认返回键小于toKey的Map集合,若比较器是按照大的排序,则返回键大于toKey的Map集合。
2.4 tailMap(K fromKey)
默认返回键大于等于fromKey的Map集合,若比较器是按照大的排序,则返回键小于等于toKey的Map集合。
2.5 firstKey()
返回排序中的第一个键
2.6 lastKey()
返回排序中的最后一个键
2.7 keySet();
按照key的顺序返回key集合
2.8 values()
按照key的顺序返回value集合
2.9 entrySet()
按照键的顺序,返回键值对结点集合。
JDK源码分析---SortedMap相关推荐
- 【JDK】JDK源码分析-HashMap(1)
概述 HashMap 是 Java 开发中最常用的容器类之一,也是面试的常客.它其实就是前文「数据结构与算法笔记(二)」中「散列表」的实现,处理散列冲突用的是"链表法",并且在 J ...
- 【JDK】JDK源码分析-CountDownLatch
概述 CountDownLatch 是并发包中的一个工具类,它的典型应用场景为:一个线程等待几个线程执行,待这几个线程结束后,该线程再继续执行. 简单起见,可以把它理解为一个倒数的计数器:初始值为线程 ...
- JDK源码分析(2)LinkedList
JDK版本 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. LinkedList 实现 ...
- 从源码分析SortedMap与NavigableMap
从源码分析SortedMap与NavigableMap SortedMap 基本方法 NavigableMap 基本方法 SortedMap Map集合本身不具有排序的功能,SortedMap接口就提 ...
- StringBuffer类【JDK源码分析】
StringBuffer类[JDK源码分析] 前言 推荐 说明 StringBuffer类 基本信息 属性 构造方法 部分方法 length capacity append insert revers ...
- JDK源码分析 NIO实现
总列表:http://hg.openjdk.java.net/ 小版本:http://hg.openjdk.java.net/jdk8u jdk:http://hg.openjdk.java.net/ ...
- 【jdk源码分析】ArrayList的size()==0和isEmpty()
先看结果 分析源码 [jdk源码解析]jdk8的ArrayList初始化长度为0 java的基本数据类型默认值 无参构造 size()方法 isEmpty()方法 转载于:https://www.cn ...
- jdk源码分析书籍 pdf_如何阅读源码?
点击上方"IT牧场",选择"设为星标" 技术干货每日送达! 阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码. 首 ...
- jdk源码分析书籍 pdf_什么?Spring5 AOP 默认使用Cglib?从现象到源码深度分析
推荐阅读: 阿里工作十年拿下P8,多亏了这些PDF陪我成长(Spring全家桶+源码解析+Redis实战等)zhuanlan.zhihu.com 从入门到熟悉,一步一步带你了解 MySQL 中的「索 ...
最新文章
- 一图看懂新一代人工智能知识体系大全
- HDU 5289 Assignment(单调队列)
- 单片机程序下载方式ISP、IAP
- gdb加载python_gdb加载python脚本的方法
- Python爬取天气数据及可视化分析!
- 老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密
- 使用webpack打包ES6代码
- STM32学习第三课:STM32 c语言学习基础3(内存操作、指针、结构指针)
- /proc/sys/net/ipv4/目录介绍
- 计算机视觉和机器学习,代码,论文大全
- 【Python】numpy库和scipy库的安装与使用
- 区块链在图书馆中应用
- 升级 XPLite 中的 IE
- 魔域充值卡表cq_card里chk_sum参数的算法
- java基于微信小程序的在线作业提交批改系统 uniapp 小程序
- docker 部署 gitlab gitlab-runner 实现 CI
- 前端:3分钟实现一个共享桌面,还能听见麦克风声音哦
- EF系列(一)——深入框架底层
- cpu的核数和进程_CPU与核心及进程和线程认识
- iOS百度地图SDK之实时绘制轨迹(后台仍执行)