HashMap心得
来源:互联网 发布:阿里云发短信 php代码 编辑:程序博客网 时间:2024/05/16 14:24
HashMap的心得
HashMap是通过Entry[]数组和链表来实现的。在进行put(K key,V value)操作时,会通过Key的hashCode计算得出这个Entry的索引值,如果Entry的索引值重复,那么就会使用到链表,把后存进的元素放在这个数组中,并把next属性指向在它之前存进来的具有相同hashCode值的那个元素。
为什么后进来的元素需要放在链表的最前面,而不是最后面,这就取决于效率问题,在集合中,我们除了做存(put)的操作之外,还需要做取(get())的操作;get(Object key)方法在实现的时候,因为HashMap底层综合运用了数组和链表,如果hashCode值重复,那么就需要去这个索引下的链表中去寻找值,这样就会出现两次查询,那么为了提高效率,把后进来的值放在链表的最前面,这样可以减少一次查询,提高效率。
除此之外,HashMap的数组其实也是一个链表,所以HashMap实际上是一个”链表散列”的数据结构,综合使用了数组和链表这两种数据结构。
附:网上找的HashMap图
阅读全文
0 0
- HashMap心得
- 关于java hashmap的心得
- 关于HashMap和LinkedHashMap的工作心得
- java心得(hashmap之红黑树)
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- HashMap
- hashmap
- HashMap
- HashMap
- gson
- opencv之光照补偿和去除光照
- 汽车黑客大曝光--第三章学习
- java中的equals方法总结
- webview显示异常,有时偏大有时偏小
- HashMap心得
- error LNK2005
- 倒计时的html页面
- 汽车黑客大曝光--第四章学习
- 变量的解构赋值
- PHP进程与线程操作技巧
- SPOJ QTree again!
- 小练习A
- Maven自定义镜像Nexus的setting配置(.m2目录下面)