java源码研究-HashMap

  HashMap的用法相信我不用解释了,常用于无序键值对的存放,由于其有良好的查找和插入性能,是大量使用的数据结构。HashMap相关的方法有get,put,常见的参数包括loadFactor,Capacity等,在后面都会提到。经常被提到的另两个相似的类是HashTable和java.util.concurrent.ConcurrentHashMap ,这三个类主要区别是多线程时候的性能以及是否线程安全,一言以蔽之:性能HashMap>ConcurrentHashMap>HashTable,但是HashMap是非线程安全的,其余则安全。

  最近面试老被问到hashMap的实现,于是花了点时间对其完整的看了一遍。话不多说,美国空间,香港虚拟主机,进入正题。

基本的原理

  java.util.HashMap中有一个Entry[] table ,数据都存放在这个里面。

  Entry是HashMap中的一个静态内部类。用于实现一个链表结构,节点表示map中的一个值,从定义可以看出:,香港虚拟主机有山就有路,有河就能渡。

java源码研究-HashMap

相关文章:

你感兴趣的文章:

标签云: