【问题标题】:Why does LinkedHashMap not implement SortedMap?为什么 LinkedHashMap 没有实现 SortedMap?
【发布时间】:2017-10-08 08:44:42
【问题描述】:

LinkedHashMap 显然是一个有序的 Map。它根据插入进行排序。

那为什么不实现 SortedMap 呢?

【问题讨论】:

  • "Ordered" 和 "sorted" 并不是同一个意思。
  • 因为语言是这样构建的。如果你想要实现,你可以继承它并自己实现。
  • @JoeC 你能说得更具体点吗?在这种情况下,它们有何不同?
  • @William Sorted 表示元素根据 Çomparable 或 Comparator 接口进行排序。 LinkedHashMap 按插入排序。
  • 啊,谢谢。我一直认为插入顺序只是 LinkedHashMap 的默认值,您可以提供一个 Comparator 对其进行排序。

标签: java hashmap sortedmap


【解决方案1】:

来自Java docs

Map接口的哈希表和链表实现,带有 可预测的迭代顺序。此实现不同于 HashMap 因为它维护一个双向链表,贯穿其所有 条目。这个链表定义了迭代顺序,即 通常是键插入地图的顺序 (插入顺序)。

虽然排序的地图是

进一步提供其键的总排序的 Map。地图是 根据其键的自然顺序排序,或按 比较器通常在排序地图创建时提供。

所以两者的存在目的不同,其中 LinkedHashMap 以相同的键插入顺序提供迭代,而 SortedMap 用于使用 Comparator 或 Comparable 进行排序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-11
    • 2012-04-29
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多