python treemap_TreeMap简介
在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合对象之一。
与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;
不同于HashMap的哈希映射,TreeMap实现了红黑树的结构,形成了一颗二叉树。
TreeMap继承于AbstractMap,实现了Map, Cloneable, NavigableMap, Serializable接口。
(1)TreeMap 继承于AbstractMap,而AbstractMap实现了Map接口,并实现了Map接口中定义的方法,减少了其子类继承的复杂度;
(2)TreeMap 实现了Map接口,成为Map框架中的一员,可以包含着key-value形式的元素;
(3)TreeMap 实现了NavigableMap接口,意味着拥有了更强的元素搜索能力;
(4)TreeMap 实现了Cloneable接口,实现了clone()方法,可以被克隆;
(5)TreeMap 实现了Java.io.Serializable接口,支持序列化操作;
TreeMap具有如下特点:
不允许出现重复的key;
可以插入null键,null值;
可以对元素进行排序;
无序集合(插入和遍历顺序不一致);
TreeMap基本操作
[Java] 纯文本查看 复制代码
TreeMap排序
(1)使用元素自然排序
在使用自然顺序排序时候,需要区分两种情况:一种是Jdk定义的对象,一种是自己定义的对象;
[Java] 纯文本查看 复制代码
在自然顺序比较中,需要让被比较的元素实现Comparable接口,否则在向集合里添加元素时报:"java.lang.ClassCastException: com.huangqiuping.collection.map.SortedTest cannot be cast to java.lang.Comparable"异常;
这是因为在调用put()方法时,会将传入的元素转化成Comparable类型对象,所以当你传入的元素没有实现Comparable接口时,就无法转换,遍会报错;
(2)使用自定义比较器排序
使用自定义比较器排序,需要在创建TreeMap对象时,将自定义比较器对象传入到TreeMap构造方法中;
自定义比较器对象,需要实现Comparator接口,并实现比较方法compare(To1,To2);
使用自定义比较器排序的话,被比较的对象无需再实现Comparable接口了;
[Java] 纯文本查看 复制代码
更多java学习资料可关注:itheimaGZ获取
python treemap_TreeMap简介相关推荐
- 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...
- Python列表简介
Python列表简介 什么是列表 #普通的变量定义形式 tom ='Tom' jack ='Jack' john ='John'pet1 ='cat' pet2 ='dog' pet3 ='bird' ...
- Python编程简介
Python编程简介 2011年06月23日 NOTE: The following is a short tutorial about python program, for Chinese rea ...
- 大数据教程【05.01】--Python 数据分析简介
更多信息请关注WX搜索GZH:XiaoBaiGPT Python数据分析简介 本教程将介绍如何使用Python进行大数据分析.Python是一种功能强大且易于使用的编程语言,具备丰富的数据分析库和工具 ...
- Python基础知识(Python的简介、Python环境的安装、集成开发环境Pycharm的安装)
1.Python的简介 python是跨平台的计算机语言.解释型语言.交互式语言.面向对象语言.初学者最好学的语言 什么是跨平台:意思就是说可以在很多操作系统中执行.比如:可以在windows操作系统 ...
- Python Notebook简介
windows下面安装和使用Python, IPython NoteBook (详细步骤) Python Notebook简介1 IPython notebook目前已经成为用Python做教学.计算 ...
- python画图简介
python画图简介 1.seaborn学习资料 2.matplotlib学习资料 3.扩展学习资料 4.实际练习 5.常用命令(待补充) 6.常用知识点备查 6.1 plt的默认属性rc参数 6.2 ...
- Python库简介之pylab
Python库简介之pylab 转载于 链接: https://blog.csdn.net/qq_34519492/article/details/96437901 https://blog.csdn ...
- python笔记-简介
一Python的简介 一历史简介 Python诞生于1991年,目前有27年了,比1995年的JAVA语言都早了4年,为何大器晚成? 其一,在1990那个年代,计算机性能相比现在差很多,程序执行速度和 ...
最新文章
- AI生态赋能2018论坛来袭!转型AI看这里!
- iOS 中的CoreImage框架(framework)
- 51CTO -- 网络自学的瓶颈期
- 下列可以产生斜体字的html标签是,电子科技大学《网页设计与制作》20秋期末考试题目【标准答案】...
- 【dll 返回字符串 】2
- linux的centos7安装mysql5.7服务教程
- preg_match 参数获取两个_「死磕 Spring」—– IOC 之 获取 Document 对象
- 如何在doc下运行java程序及打包成.jar格式的Java程序
- USB_CAN-2A使用CANTest解析J1939
- 使用 laravel-admin 配置后台管理系统
- 大学的c语言课程难度,大学挂科率最高的4门课程,学霸也担心挂科,有你学过的课程吗?...
- 人工智能新风口上,网易是否能够突围?
- mac 配置mysql
- libtorch tensor的使用
- pc端ui图片尺寸_PC端UI设计尺寸规范?
- 【算法】求解最大连续子序列和的问题
- 计算机网络-CPT实验
- 小陈学js 预解析
- 洛谷3月月赛 R1 Step! ZERO to ONE
- 导出Word的两种方式