[Java] Hashmap的内部实现
2016-01-22 00:00
369 查看
原始数据结构
在记录Hashmap的内部实现之前 先复习下 学校里面学过的一下基本数据结构吧。数组
在简单不过了,在课堂学习的时候,学的最多的就是 数组的寻址和插入了,和java 中的数组没两样,从空间和时间的计算角度看,数组是一个空间优于时间的一种数据结构链表
在学完数组之后,老师一定介绍过可以快速插入的数据结构那就是链表啦,每个节点用 Next的来做链接啦。二叉树
在学完链表之后,老师又教了一种看似高端的数据结构, 那就是二叉树啦,也就是所谓的红黑树,它的优势在于节点数量达到一定级别后检束数度要大于链表。Hash表
HashMap基于Hash算法,我们通过put(key,value)存储,get(key)来获取。当传入key时,HashMap会根据 key.hashCode()计算出hash值,根据hash值将value保存在bucket里。当计算出的hash值相同时怎么办呢,我们称之为 Hash冲突,HashMap的做法是用链表和红黑树存储相同hash值的value。当Hash冲突的个数比较少时,使用链表,否则使用红黑树。------------------TBD----------------------
相关文章推荐
- Java 虚拟机-垃圾收集算法
- spring IOC配置
- Java可变参数关于参数列表含可变参数的方法重载的注意点
- Java字符串简单练习
- Spring 中的 bean
- java的classpath和path理解
- java_Observer Design Pattern
- eclipse在Ubuntu12.04下出现错误:JVM terminated. Exit code=13 /usr/bin/java的一种解决办法
- Java并发编程知识总结
- JVM学习05-字节码执行过程和JVM指令集
- Java防盗链(防止网页从其他地方直接访问)
- 1.21 Java基础总结 数组知识
- 从Java程序猿到产品经理
- spring ioc
- spring IOC容器
- Eclipse设置自动换行
- Java [Leetcode 66]Plus One
- Struts中Validate()和validateXxx的使用
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java基础-了解HashMap