Java数据存储:集合框架与泛型拓展(一)Map

HashMap基于哈希散列表实现,存储随机,插入删除高效,但非线程安全。TreeMap实现了SortMap接口,按照键的升序排序,使用红黑树保证遍历有序,但性能较低且键值对不能为null。两者在遍历和安全性上有显著差异。
摘要由CSDN通过智能技术生成

Map

HashMap和TreeMap

  1. 实现
    TreeMap:SortMap接口,基于红黑树
    HashMap:基于哈希散列表实现
  2. 存储
    TreeMap:默认按键的升序排序
    HashMap:随机存储
  3. 遍历
    TreeMap:Iterator遍历是排序的
    HashMap:Iterator遍历是随机的
  4. 性能损耗
    TreeMap:插入、删除
    HashMap:基本无
  5. 键值对
    TreeMap:键、值都不能为null
    HashMap:只允许键、值均为null
  6. 安全
    TreeMap:非并发安全Map
    HashMap:非并发安全Map
  7. 效率
    TreeMap:低
    HashMap:高

红黑树
在这里插入图片描述
从上而下,比父节点大的放在左边,比父节点大的放在右
祖父G- ganderfather
父母P-Parents
叔叔U- uncle
兄弟B- brother
根 R-root
当前新增节点C-Current
在这里插入图片描述

根据x轴递增的规律来排序

  1. 红黑树特性:
    1. 每个节点都有颜色,不是红色就是黑色
    在这里插入图片描述
    1. 根节点是黑色
    2. 每个叶子节点(NIL)都是黑色的虚点(值)null
    3. 每个红色节点的子节点一定是黑色的(红色节点一定有黑色的父节点)
    4. 任意节点到每个叶子节点(虚拟的NIL)的路径都包含相同数量的黑节点
      在这里插入图片描述
      红黑树的平衡性
      1. 红黑树是一种含有红黑节点的并能自平衡的二叉查找树。
        a. 包含变色,旋转。旋转包含左旋和右旋。
        b. 旋转节点按照子节点旋转(子节点为圆心)。
      2. 红黑树是非完美二叉平衡查找树,是完美黑色二叉查找树
        在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值