2013-11-24 135 views
3

我知道Hashmap如何在內部工作。 Linkedhashmap擴展了Hashmap類。那麼Linkedhashmap如何維護插入順序。我已經閱讀了Linkedhashmap的javadoc,但沒有關於此的任何細節。有人能幫我理解嗎?linkedhashmap如何維護插入順序

在此先感謝。

+1

的Javadoc應該很少揭示班級如何在裏面工作。你有沒有嘗試過查看'LinkedHashMap'的源代碼? – cherouvim

+3

看到這個:http://javaopensourcecode.blogspot.co.il/2012/06/linkedhashmap.html – Maroun

+0

真的很好的鏈接... – Newbie

回答

3

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

實現背後的想法很簡單。它擴展了常規的hashMap(因此它具有所有的hashMap好吃的東西),但是在添加元素時也構建了雙鏈表。

(條目也從HashMap.Entry擴展,使他們有一個指針後和前) 因此,所有的條目是有序HEAD - >條目1 < - > ENTRY2 ... < - TAIL

,並在同時保存在標準的HashSet中(我假設你熟悉實現)。

現在迭代時使用它的條目鏈接列表。