发现自己对看源码特别痛苦,而且看了就忘。有必要按照源码已有的功能需求按照自己的想法去写一个轮子,然后比对着看才能理解。
hashMap 功能很多,结构为数组+链表(暂时忽略红黑树),准备就写两个基本功能:
put get
我就围绕这两个功能来仿照写一个 WheelHashMap 。
WheelHashMap 类
基本属性和 hashMap 保持一致
hash 方法复制 hashMap 的
put 方法
resize 扩容方法
get 方法
在造轮子的过程中体会到为什么数组长度要是2的倍数
hash & (length-1)
代码可以在 Github 上找到
本文来自 chentiefeng的博客