File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 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+
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments