Java 是否存在哈希表优于concurrenthashmap的场景?

Java 是否存在哈希表优于concurrenthashmap的场景?,java,collections,Java,Collections,我们都知道ConcurrentHashMap在性能上更好,但是我们可以有任何Hashtable更好的场景吗 在回答问题之前,我会这样说:不要再使用哈希表了Hashtable是Java 1.0中的一个遗留工具,在Java 2引入高级集合框架之前 如果需要简单的哈希映射,请使用HashMap。如果需要执行线程安全,请使用ConcurrentHashMap。如果需要普通的基本线程安全性和不良线程安全性,请将HashMap包装到Collections.synchronizedMap(Map)中 现在实际

我们都知道ConcurrentHashMap在性能上更好,但是我们可以有任何Hashtable更好的场景吗

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

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

现在实际回答这个问题,这是一个纯粹比较两个特定类别的问题,没有看到各种可能性:

是的,这种情况是存在的 从:

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

  • 因此,是的,
    Hashtable
    适用于需要线程安全实现,但不“渴望”高度并发实现的场景。这也是严格意义上的
    ConcurrentHashMap
    Hashtable
    之间的排他性比较

  • 此外,如果您需要
    枚举
    [1],
    哈希表
    有直接的支持,而您必须通过
    集合。枚举(…)
    用于其他
    映射
    的操作



  • 一,<代码>枚举
    也是一个Java 1.0类。切换到
    Iterator
    (如果使用Java 2到7)或
    Stream
    (如果使用Java 8+)

    您应该对苹果进行比较,这意味着
    Collections.synchronizedMap(new HashMap())
    ConcurrentHashMap
    Hashtable
    只不过是一个遗留问题,自从上次触及
    Hashtable
    以来,
    HashMap
    有很多改进。这是一个不完整的建议,因为
    synchronizedMap(new HashMap())
    Hashtable
    好。我认为Hashtable已经过时了