LinkedHashMap如何在内部保留对象的插入顺序

时间:2013-09-30 13:41:50

标签: java

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

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

但是LinkedHashMap内部支持对象的访问顺序和插入排序是什么?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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