![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 集合
风过无痕1110
个人开源项目:
https://github.com/tangyanbo/springmore/
java技术讨论群:
261502547
展开
-
跟我一起阅读Java源代码之HashMap(一)
最近闲的很,想和大家一起学习并讨论下Java的一些源代码以及其实现的数据结构,不是什么高水平的东西,有兴趣的随便看看 1. 为什么要用Map,以HashMap为例 很多时候我们有这样的需求,我们需要将数据成键值对的方式存储起来,根据key来获取value(value可以是简单值,也可以是自定义对象) 当然用对象数组也能实现这个目的,查找时可以遍历数组,比较关键字来获...2012-12-27 21:35:53 · 76 阅读 · 0 评论 -
跟我一起阅读Java源代码之HashMap(二)
上一节中实现的SimpleHashMap,没有解决冲突的问题,这一节我们继续深入由于table的大小是有限的,而key的集合范围是无限大的,所以寄希望于hashcode散落,肯定会出现多个key散落在同一个数组下标下面,因此我们要引入另外一个概念,将key和value同时存入table[index]中,即将key和value构成一个对象放在table[index],而且可能存放多个,他们的...2012-12-27 22:37:03 · 87 阅读 · 0 评论 -
跟我一起阅读Java源代码之HashMap(三)
上一节我们讲到了如何用散列和链表实现HashMap,其中有一个疑问今天已经有些答案了,为什么要用链表而不是数组链表的作用有如下两点好处1. remove操作时效率高,只维护指针的变化即可,无需进行移位操作2. 重新散列时,原来散落在同一个槽中的元素可能会被散落在不同的地方,对于数组需要进行移位操作,而链表只需维护指针 今天研究下数组长度不够时的处理办法table为散列数组...2012-12-28 16:23:55 · 95 阅读 · 0 评论