转载

造个轮子-HashMap

造个轮子-HashMap

造个轮子-HashMap

发现自己对看源码特别痛苦,而且看了就忘。有必要按照源码已有的功能需求按照自己的想法去写一个轮子,然后比对着看才能理解。

需求分析

hashMap 功能很多,结构为数组+链表(暂时忽略红黑树),准备就写两个基本功能:

put
get

我就围绕这两个功能来仿照写一个 WheelHashMap

开始

新建 WheelHashMap

造个轮子-HashMap

基本属性和 hashMap 保持一致

hash 方法复制 hashMap

造个轮子-HashMap

put 方法

造个轮子-HashMap

resize 扩容方法

造个轮子-HashMap

get 方法

造个轮子-HashMap

总结

在造轮子的过程中体会到为什么数组长度要是2的倍数

hash & (length-1)

代码可以在 Github 上找到

本文来自 chentiefeng的博客

原文  http://www.cnblogs.com/dongfangqiezi/p/12101288.html
正文到此结束
Loading...