摘要: 直接上代码 注: 代码来自于 Java 9 put方法 当调用put(),首先会根据key生成一个 hash值,原理如下: 下图举例说明了位运算的过程,至于原理解释,参考本文引用 拿到了hash值后,调用 putVal(),做了如下操作 将对象table赋值给tab,并以tab是否为空作为是否第一次 阅读全文
posted @ 2018-02-26 16:12 kangkaii 阅读(38904) 评论(0) 推荐(6) 编辑
摘要: 问题引入 注:本文代码源自 。 阿里的插件对于初始化HashMap时,调用无参构造方法,提示如下: 那么问题来了,如果已知需要向 map 中 put n次,那么需要设定初始容量为多少? 单纯的我今天上午还认为是合理的容量是 n + 1 即可,直到看了源码; 应注意, 获取的是当前map中键值对的个数 阅读全文
posted @ 2018-02-26 09:47 kangkaii 阅读(4763) 评论(0) 推荐(0) 编辑