
java
文章平均质量分 70
java系列文章
easoneas
这个作者很懒,什么都没留下…
展开
-
HashMap详解及与HashTable的区别
增加Hash值的随机性,减少hash冲突HashMap通过( n - 1) & hash公式做与运算来计算元素在数组中的下标,按位与&的计算方式可以提高效率。当HashMap的数组长度是2的幂次方时,(n - 1)的二进制都是1111…1的形式,与添加元素的hash值进行位运算时能够充分的散列,使添加的元素能均匀的分布在HashMap的每个位置上,减少hash碰撞。原创 2023-02-26 14:26:54 · 354 阅读 · 0 评论 -
HashMap查找、插入原理(源码分析)
get()方法获取key的hash值,计算(n - 1) & hash得到该链表在数组中的位置first = tab[(n - 1) & hash],判断first的key是否与参数的key相等,如果相等直接返回,不相等判断该节点是不是TreeNode类型,是则调用getTreeNode()方法从二叉树中获取节点,不是的话遍历链表,找到相同的key返回对应的value值。原创 2023-02-27 21:11:40 · 254 阅读 · 0 评论