0
点赞
收藏
分享

微信扫一扫

画了一张图,简单描述了一下 HashMap 的 put 方法的执行过程

HashMap是最经典的Map实现,下面介绍一下put的过程:

  1. 在put的时候,首先要判断数组是否为空,如果数组为空则会进行第一次的扩容。然年后对key做hash运算,计算出该key所在的index。
  2. 如果没碰撞,直接放到数组中,如果碰撞了,需要判断目前数据结构是链表还是红黑树,根据不同的情况来进行插入。假设key是相同的,则替换到原来的值。
  3. 最后判断哈希表是否满了(当前哈希表大小*负载因子),如果满了,则扩容。
    在这里插入图片描述

在get的时候,还是对key做hash运算,计算出该key所在的index,然后判断是否有hash冲突。
假设没有冲突直接返回,假设有冲突则判断当前数据结构是链表还是红黑树,分别从不同的数据结构中取出。

举报

相关推荐

0 条评论