【发布时间】:2012-10-30 08:48:37
【问题描述】:
我见过在不同代码中使用的哈希表和哈希映射,但它们看起来好像做同样的事情。它们之间有区别吗?我应该在我的代码中使用哪一个?
【问题讨论】:
-
是的,主要区别在于 Hashtable 是同步的,而 HashMap 不是。它们也有不同的超类层次结构。 (FWIW,由于在并发环境中使用 HashMap,我曾多次在大型商业应用程序中看到相当严重的故障。)
-
顺便说一句,它是“HashMap”和“Hashtable”。注意大写。
-
你考虑过阅读 Javadoc 吗?
-
@HotLicks - “由于在并发环境中使用 HashMap,我曾多次看到大型商业应用程序出现相当严重的故障。” - 但使用 @由于争用问题,987654322@ 也可能不是一个好主意。并发应用程序需要更复杂的思维......如果您希望它们扩展。
-
Hashtable或多或少已被弃用;ConcurrentHashMap设计用于在并发环境中工作,但更擅长于并发环境。