一、SortedMap 类结构图

二、源码分析

a.  SortedMap 接口继承自 Map 接口,提供了按照 Key 排序的功能,即 keySet、values、entrySet 结果集有序

b.  Key 需要实现 Comparable 接口或者能被指定的 Comparator 接收,以便排序

c.  Map 接口定义中指出,应该使用 equals 判断 Key 是否相等,但 SortedMap 实际可以使用 Comparable/Comparator 代替

d.  这些函数返回的部分 Map (子 Map) 与原有 Map 有映射关系,一个变化影响另一个

The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa.

SortedMap<K,V> subMap(K fromKey, K toKey);  // 包含 from,不包含 to
SortedMap<K,V> headMap(K toKey);  // 不包含 to
SortedMap<K,V> tailMap(K fromKey);  // 包含 from

e.  相比 Map 接口,主要增加了  comparator() 等比较相关方法,在定义中指出返回的 Set 应该是有序的

SortedMap 接口源码分析相关推荐

  1. Android Q 基站刷新接口源码分析 适配双卡手机基站刷新逻辑

    目录 一.获取基站信息的两个关键方法 getAllCellInfo调用流程总结 requestCellInfoUpdate 流程总结 问题 二.双卡手机适配 Android Q requestCell ...

  2. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

  3. java观察者模式类图_设计模式(十八)——观察者模式(JDK Observable源码分析)...

    1 天气预报项目需求,具体要求以下: 1) 气象站能够将天天测量到的温度,湿度,气压等等以公告的形式发布出去(好比发布到本身的网站或第三方).java 2) 须要设计开放型 API,便于其余第三方也能 ...

  4. Java集合类框架源码分析 之 LinkedList源码解析 【4】

    上一篇介绍了ArrayList的源码分析[点击看文章],既然ArrayList都已经做了介绍,那么作为他同胞兄弟的LinkedList,当然必须也配拥有姓名! Talk is cheap,show m ...

  5. 从源码分析SortedMap与NavigableMap

    从源码分析SortedMap与NavigableMap SortedMap 基本方法 NavigableMap 基本方法 SortedMap Map集合本身不具有排序的功能,SortedMap接口就提 ...

  6. Spring源码分析——资源访问利器Resource之接口和抽象类分析

    从今天开始,一步步走上源码分析的路.刚开始肯定要从简单着手.我们先从Java发展史上最强大的框架--Spring...旗下的资源抽象接口Resource开始吧. 我看了好多分析Spring源码的,每每 ...

  7. FPGA学习之路—接口(3)—SPI详解及Verilog源码分析

    FPGA学习之路--SPI详解及Verilog源码分析 概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线. 优点 支持全 ...

  8. java中Mark接口_JVM源码分析之Java对象头实现

    原标题:JVM源码分析之Java对象头实现 原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 "365篇原创计划"第十一篇. 今天呢!灯塔君跟大家讲: JVM源码分析之Ja ...

  9. List接口的常用方法以及ArrayList/LinkedList源码分析

    1.List接口的常用方法 ArrayList list = new ArrayList();list.add(123);list.add(456);list.add("AA"); ...

最新文章

  1. 大话IT职场之工作和生活的平衡
  2. 慕了!北京大学新校区来了!
  3. mesh三维画图[matlab]
  4. 采购部管理--餐饮原料的验收管理
  5. C++中const char *p和char const *p
  6. Linux下显示当前目录下的全部目录或文件
  7. flowable 实现多实例-会签-动态配置人员 参考demo
  8. js 字符串截取 获取固定标识字段
  9. 为什么都开始流行将洗手台装在厕所外?
  10. LeetCode 674. 最长连续递增序列 (滑动窗口 计数法)
  11. VMware15安装MAC(MAC OS 10.13)(OS X 10.14)原版可升级最新可解锁macOS Unlocker3.0(OS X 10.13)
  12. 批量修改图片尺寸,不用ps也可以
  13. echarts树图设置高亮
  14. android 自定义searchview,android自定义searchView圆角
  15. [高通SDM450][Android9.0]CTA认证--去掉通话记录功能
  16. 浏览器标准模式和怪异模式之间的区别是什么——整理自网页
  17. MBA书籍推荐:打造商业思维,看这一本书就够了
  18. ios手机号和邮箱(支付宝账号)脱敏
  19. VR 终极选购指南:入门、进阶与高端
  20. 运筹说 第42期 | 算法介绍之运输问题

热门文章

  1. 小说网站竟然没有下载功能?跟小姐姐学会这个python小说爬虫,把全文小说带回家!
  2. Mask-CNN: Localizing Parts and Selecting Descriptors for Fine-Grained Image Recognition
  3. Python和人工智能到底啥关系?
  4. 以金融科技定义高阶财富管理 银河证券与投资者共同成长
  5. iptables防火墙开放、关闭某端口
  6. UML时序图(Sequence Diagram)讲解
  7. [linux数据库]error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32
  8. 华为软件开发云(DevCloud):免费可商用的项目管理工具
  9. Linux系统Tomcat无法启动问题解决办法
  10. vertica显示建表语句