Skip to content

Commit a8558e0

Browse files
committed
add hashTable and hashMap
1 parent 908f5cf commit a8558e0

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# HashTable和HashMap的异同
2+
3+
- HashTable
4+
5+
1. Hashtable继承于Dictionary字典,实现Map接口
6+
7+
2. 键、值都不能是空对象
8+
9+
3. 多次访问,映射元素的顺序相同
10+
11+
4. 线程安全
12+
13+
14+
5. hash算法 ,Hashtable则直接利用key本身的hash码来做验证
15+
16+
6. 数据遍历的方式 Iterator (支持fast-fail)和 Enumeration (不支持fast-fail)
17+
18+
7. 缺省初始长度为11,内部都为抽象方法,需要 它的实现类一一作自己的实现
19+
20+
备注:程序在对 collection 进行迭代时,某个线程对该 collection 在结构上对其做了修改,这时迭代器就会抛出 ConcurrentModificationException 异常信息,从而产生 fail-fast。
21+
22+
----
23+
24+
- HashMap
25+
26+
1. HashMap继承于AbstractMap抽象类
27+
28+
2. 键和值都可以是空对象
29+
30+
3. 多次访问,映射元素的顺序可能不同
31+
32+
4. 非线程安全
33+
HashMap可以通过下面的语句进行同步:
34+
``Map m = Collections.synchronizeMap(hashMap);``
35+
36+
5. 检测是否含有key时,HashMap内部需要将key的hash码重新计算一边再检测数据遍历的方式 Iterator (支持fast-fail)
37+
38+
6. 缺省初始长度为16,其内部已经实现了Map所需 要做的大部分工作, 它的子类只需要实现它的少量方法
39+

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ Android-Note里面记录了有关Android的常用基础知识、面试中经常
9393
- [ArrayList、LinkedList、Vector的异同](/Java相关/ArrayList、LinkedList、Vector的异同.md)
9494
- [Java中Error和Exception](/Java相关/Java中Error和Exception.md)
9595
- [Des加密算法](/Java相关/Des加密算法.md)
96+
- [HashTable和HashMap的异同](/Java相关/HashTable和HashMap的异同.md)
9697

9798

9899

0 commit comments

Comments
 (0)