We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 46a3c32 commit d9f3351Copy full SHA for d9f3351
README.md
@@ -107,8 +107,16 @@ Map中的每一个元素包含一个键对象和值对象,它们成对出现
107
|增删的时候在扩容的时候慢,通过索引查询快,通过对象查索引慢|增删快,通过索引查询慢,通过对象查索引慢|
108
|扩容因子1.5倍|无|
109
110
-### HashMap和HashTable区别
+### HashMap
111
+[面试必问的几个点](http://www.importnew.com/7099.html)
112
+
113
+(1)JDK 1.8 以前 HashMap 的实现是 数组+链表,即使哈希函数取得再好,也很难达到元素百分百均匀分布。
114
115
+(2)当 HashMap 中有大量的元素都存放到同一个桶中时,这个桶下有一条长长的链表,这个时候 HashMap 就相当于一个单链表,假如单链表有 n 个元素,遍历的时间复杂度就是 O(n),完全失去了它的优势。
116
117
+(3)针对这种情况,JDK 1.8 中引入了红黑树(查找时间复杂度为 O(logn))来优化这个问题
118
119
+### HashMap和HashTable区别
120
1. Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。
121
2. Hashtable中,key和value都不允许出现null值。HashMap中,null可以作为键,这样的键只有一个,可以有一个或多个键所对应的值为null。
122
3. 哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
0 commit comments