1

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

公共 LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

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

4

2 回答 2

1

OpenJDK 6 版本的源代码LinkedHashMap可在此处获得。基本上,实现保留了所有条目的双向链表,条目的顺序就是它们在列表中的位置。

于 2013-09-30T13:44:55.217 回答
1

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

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

于 2013-09-30T13:43:13.397 回答