TreeMap及红黑树的实现

TreeMap 是基于红黑树的实现,是有序的.当我们在开发中需要用到有序的且按大小排列顺序的、不重复的、有映射关系的业务场景时,TreeMap 这个容器可以帮助我们方便的开发.

TreeMap特性

TreeMap实现了两个重要的接口:
image.png

SortedMap接口,表示其具备可排序的功能.
元素有序.TreeMap 保证元素有序,使用的是比较的方式.在存储数据的时候,需要对存储的key进行比较.所以,它不允许存储null键,但是可以存储null值.
如何进行比较呢?

  1. 要保存的元素自己具有比较功能,即:自然排序,元素需要实现Comparable接口.
  2. 使用一个比较器,可以比较两个对象.即:定制排序,需要在创建TreeMap对象的时候,传递一个比较器(Comparator)给构造器.
    NavigableMap接口,表示其具备可导航的功能.
    导航:在这个接口中,定义了大量的对范围进行查找的方法.比如,大于某一个元素的集合.这些操作都是查询操作.而TreeMap采用的是红黑树的结构,来存储数据,从而保证效率.
    那什么是红黑树呢?
    红黑树是一种具有红色和黑色链接的平衡查找树.

有点抽象…
既然TreeMap都已经是红黑树的实现了,那我们完全可以看着源码,来说红黑树呀.
显而易见的是:因为TreeMap需要使用红黑树的数据结构来组织元素,所以我们要查看源码,也是查看添加元素或者删除元素.本文主要是简单阅读添加元素的源码(其实删除的原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值