java hashmap源代码了解
来源:互联网 发布:bios windows whql支持 编辑:程序博客网 时间:2024/05/23 11:47
昨天面试官问我 用java实现hashmap
我直接蒙蔽了,所以回来看了看hashmap是个什么东西?
via:什么是哈希表和哈希算法?
比如这里有一万首歌,给你一首新的歌X,要求你确认这首歌是否在那一万首歌之内。
无疑,将一万首歌一个一个比对非常慢。但如果存在一种方式,能将一万首歌的每首数据浓缩到一个数字(称为哈希码)中,于是得到一万个数字,那么用同样的算法计算新的歌X的编码,看看歌X的编码是否在之前那一万个数字中,就能知道歌X是否在那一万首歌中。
作为例子,如果要你组织那一万首歌,一个简单的哈希算法就是让歌曲所占硬盘的字节数作为哈希码。这样的话,你可以让一万首歌“按照大小排序”,然后遇到一首新的歌,只要看看新的歌的字节数是否和已有的一万首歌中的某一首的字节数相同,就知道新的歌是否在那一万首歌之内了。
当然这个简单的哈希算法很容易出现两者同样大小的歌曲,这就是发送了碰撞。而好的哈希算法发生碰撞的几率非常小。
作者:知乎用户
链接:https://www.zhihu.com/question/20820286/answer/88812256
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
不得不说的是hashmap中的entry[]里面有 key值 value hash值(作用一级定义见上面知乎) next 类似指针
next是一个entry变量
hashmap的方法
add remove get (通过k,通过v)
add方法
先查找有没有相同的key如果有则只是修改值 如果没有则新建一个entry根据key计算出hash值,然后根据hash值插入主数组next指向原来这个位置的entry,如果原来这个地方是空的,则next为空
大概就是这样,写的不好看到什么不对的,麻烦喷我一下。谢谢大家。
阅读全文
0 0
- java hashmap源代码了解
- Java基础-了解HashMap
- Java HashMap源代码详解
- Java HashMap源代码详解
- Java HashMap源代码详解
- Java HashMap源代码详解
- Java HashMap源代码详解
- 深入了解java中的hashMap
- Java HashMap 实现源代码分析
- Java HashMap&Hashtable 源代码分析
- Java容器HashMap源代码解析
- Java源代码阅读-HashMap篇
- 共同学习Java源代码-数据结构-HashMap(一)
- 共同学习Java源代码-数据结构-HashMap(二)
- 共同学习Java源代码-数据结构-HashMap(三)
- 共同学习Java源代码-数据结构-HashMap(四)
- 共同学习Java源代码-数据结构-HashMap(五)
- 共同学习Java源代码-数据结构-HashMap(六)
- java性能优
- bcoderSS官网
- wireshark捕获/过滤指定ip地址数据包
- 4-1集合类(重点)
- ExpandableListView购物车实现(转载)
- java hashmap源代码了解
- SSH,SSR,SSL
- 关于集合的习题(1)
- android实现简单的购物车
- java中遇到的问题
- 高并发秒杀系统的优化
- linux安装软件的几种方法
- Apache POI实现Excel文件导出
- 文章标题 HDU 5971 : Wrestling Match (2-sat)