参考解答
(1)HashMap允许key和value为null,而HashTable不允许。
(2)HashTable是同步的,而HashMap不是。所以HashMap适合单线程环境,HashTable适合多线程环境。
(3)在Java1.4中引入了LinkedHashMap,HashMap的一个子类,假如你想要遍历顺序,你很容易从HashMap转向LinkedHashMap,但是HashTable不是这样的,它的顺序是不可预知的。
(4)HashMap提供对key的Set进行遍历,因此它是fail-fast的,但HashTable提供对key的Enumeration进行遍历,它不支持fail-fast。
(5)HashTable被认为是个遗留的类,如果你寻求在迭代的时候修改Map,你应该使用CocurrentHashMap。
相似问题
并发集合类是什么?
并发集合类是什么?
如何从给定集合那里创建一个synchronized的集合?
如何从给定集合那里创建一个synchronized的集合?
如何决定选用HashMap还是TreeMap?
如何决定选用HashMap还是TreeMap?
fail-fast与fail-safe有什么区别?
fail-fast与fail-safe有什么区别?
队列和栈是什么?列出它们的区别?
队列和栈是什么?列出它们的区别?
