【问题标题】:How does LinkedHashMap internally preserves the insertion order of objectsLinkedHashMap如何在内部保留对象的插入顺序
【发布时间】:2013-09-30 13:41:49
【问题描述】:

LinkedHashMap 将所有调用委托给其父 HashMap。它还支持基于 accessOrder 值的访问排序和插入排序。 如果 accessOrder : true 则使用访问顺序 else accessOrder : 使用了错误的插入顺序

public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

但是 LinkedHashMap 内部如何支持对象的访问排序和插入排序?

【问题讨论】:

    标签: java


    【解决方案1】:

    LinkedHashMap 是 Map 接口的 Hash 表和链表实现,具有可预测的迭代顺序。此实现与 HashMap 的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。请注意,如果将键重新插入到地图中,则插入顺序不会受到影响。

    http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashMap.html

    【讨论】:

      【解决方案2】:

      The source code for the OpenJDK 6 version of LinkedHashMap is available here. 基本上,实现保留了所有条目的双向链表,条目的顺序就是它们在列表中的位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        相关资源
        最近更新 更多