hashmap和hashtable有什么区别

来源:14-7 哈希表更复杂的动态空间处理方法

我是卖报的小画家

2018-08-09

在网上也查了一些资料,但感觉他们解释的不好,希望老师能给个客观的答案,谢谢bobo老师

写回答

1回答

liuyubobobo

2018-08-09

核心区别是:HashMap不是线程安全的;HashTable是线程安全的。因为HashMap不需要处理线程安全相关的事宜,所以HashMap的执行效率会高一些。


也正是因为如此,HashMap和HashTable的具体实现有区别。但是深究具体实现的区别我觉得就太细致了。每一个方法都有微小的区别,但是核心是,我上面说的:HashMap不是线程安全的;HashTable是线程安全的。


比如在以下两个问答中,同学提出的,就是HashMap和HashTable再具体实现层面的区别:)

https://coding.imooc.com/learn/questiondetail/72069.html

https://coding.imooc.com/learn/questiondetail/66634.html (注意,这个问题我回答的是HashTable的底层实现机制。)


如果对更深入的HashMap和HashTable的实现区别感兴趣,可以参考JDK的源码:)


加油!

1
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程