LinkedHashMap vs HashMap,LinkedHashSet vs HashSet

O C*_*nor 3 java hashmap hashset linkedhashmap linkedhashset

我知道所有这些之间的区别,我理解LinkedHashMapLinkedHashSet提供插入排序.我理解LinkedHashMap extends HashMapLinkedHashSet extends HashSet.

为什么我们不总是使用LinkedHashMap而不是HashMap为什么我们不总是使用LinkedHashSet而不是HashSet

das*_*ght 9

保持插入顺序有相关的成本,无论是需要更多内存还是花费额外的CPU周期:

  • 您需要额外的内存来保留额外的链接,
  • 您需要额外的CPU周期来维护它.

尽管渐近复杂度是相同的,但增加的便利性并非免费.如果您不需要插入顺序维护呢,你不必为"支付"它,并使用更轻的重量HashSet<E>HashMap<K,V>代替.