mysterin's Notes

NO CODE, NO MORE


  • 首页

  • 标签

  • 归档

HashMap 详解五

发表于 2018-03-15

红黑树性质

  1. 红黑树是平衡二叉树的一种, 但是它的平衡因子是可以大于 1
  2. 红黑树的节点要么是红色, 要么是黑色, 这里的红黑色只是用来区分的一种方式, 为了定义规则
  3. 根节点一定是黑色
    阅读全文 »

HashMap 详解四

发表于 2018-03-15

新增原理

调用 put() 方法新增 key-value, 实际是调用 putVal() 方法完成. key 为空索引位置是 0, 索引位置相同则通过链表方式保存, 当链表长度超过 8 后转成红黑树保存; 当 key-value 数量超过阈值, 就要将数组 resize.

阅读全文 »

HashMap 详解三

发表于 2018-03-14

resize 方法

数组为空或者元素数量超过阈值, 将会执行 resize() 方法, 结果是将数组的长度加倍

阅读全文 »

HashMap 详解二

发表于 2018-03-13

tableSizeFor 方法

初始化 HashMap 的长度大小, 会调用 tableSizeFor 方法赋值给 threshold

阅读全文 »

HashMap 详解一

发表于 2018-03-13

本文代码来自JDK8

实现原理

  1. 建立一个数组
  2. 根据元素哈希值计算数组索引, 保存到数组
    阅读全文 »
123

mysterin

mysterin

25 日志
29 标签
© 2020 mysterin
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4