TreeMap排序是怎么样的?

您所在的位置:网站首页 用于指出排序的依据是什么 TreeMap排序是怎么样的?

TreeMap排序是怎么样的?

2024-06-30 08:30:17| 来源: 网络整理| 查看: 265

1.TreeMap是如何实现去重和排序的?

        TreeMap实现了SortedMap接口,它是一个key有序的Map类。

TreeMap的默认排序规则:

        TreeMap并不是根据插入的顺序来排序,而是根据key元素的 compareTo 方法来排序。

Map map = new TreeMap(); map.put(5, new Object()); map.put(10, new Object()); map.put(8, new Object()); map.put(12, new Object()); System.out.println(map);

输出结果:

{5=java.lang.Object@49097b5d, 8=java.lang.Object@6e2c634b, 10=java.lang.Object@37a71e93, 12=java.lang.Object@7e6cbb7a}

自定义排序:

        我们还可以向TreeMap的构造方法中传入 Comparator 对象来覆盖元素的默认排序规则。即:当TreeMap 创建时如果有传入 Comparator ,优先按照 Comparator 的规则来排序,如果没有传入 Comparator ,就按照key的 compareTo 方法来排序。

测试代码:

Map map = new TreeMap(new Comparator() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; } }); map.put(5, new Object()); map.put(10, new Object()); map.put(8, new Object()); map.put(12, new Object()); System.out.println(map);

输出结果:

{12=java.lang.Object@49097b5d, 10=java.lang.Object@6e2c634b, 8=java.lang.Object@37a71e93, 5=java.lang.Object@7e6cbb7a}

判断重复的依据:

在HashMap中判断key是否重复的依据是根据hash值和equals比较,但是在TreeMap中,判断key是否重复的依据是根据 comparaTo 是否为0,如果为0,TreeMap 就认为key是重复的。

从源码上看TreeMap去重和排序的实现原理:

在添加时,key去重的原理:

从TreeMap的put方法源代码每次要向TreeMap中添加新的键值对时,会执行以下步骤:

定义一个指针先指向二叉树的向根节点将传入的key与指针节点的key对比,如果传入的key大于指针节点的key,就将指针移动到当前节点的右子树,如果传入的key小于指针节点的key,就将指针移动到当前节点的左子树。循环执行上一步,直到传入的key值与指针节点的key值相等,就将value值替换掉,或者指针已经移动到底了,就将传入的key和value作为新的节点,添加到树的底部为了维护红黑树的平衡,将一些节点翻转,代码细节在 fixAfterInsertion 方法中,这里面的代码与插入去重无关,就不再展开来说了。

在遍历的时候时如何有序的:

        由于TreeMap在存入节点的时候已经是按照排序二叉树的特性来插入了,所以在遍历二叉树的时候只要用中序遍历,就可以按照从小到大的顺序读取每一个节点了。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭