哈希表是否优于concurrenthashmap?

时间:2016-09-28 12:30:26

标签: java collections

众所周知,ConcurrentHashMap的性能更好,但是我们可以有任何Hashtable更好的场景吗?

1 个答案:

答案 0 :(得分:0)

在回答问题之前我会这样说:不再使用Hashtable Hashtable是Java 1.0中的遗留工具,在Java 2引入的高级集合框架之前。

如果您需要简单的哈希映射,请使用HashMap。如果您需要执行线程安全,请使用ConcurrentHashMap。如果您需要简单的基本和不良线程安全性,请将HashMap打包到Collections.synchronizedMap(Map)

现在实际回答问题,这纯粹是比较两个特定的类而没有看到可能的范围:

是的,存在这样的场景

来自Hashtable documentation

  

如果不需要线程安全的实现,建议使用HashMap代替Hashtable。如果需要线程安全的高度并发实现,那么建议使用ConcurrentHashMap代替Hashtable。

  1. 所以是的,Hashtable适用于需要线程安全实现的场景,但不希望“高度并发实现。这同样严格地在ConcurrentHashMapHashtable之间进行了排他性比较。

  2. 此外,如果您需要Enumeration [1] Hashtable有直接支持,而您必须通过Collections.enumeration(...)进行其他操作Map秒。

  3. 1。 Enumeration也是Java 1.0类。切换到Iterator(如果使用Java 2到7)或Stream(如果使用Java 8 +)