2016-07-31 93 views
0

假設我有一個LinkedHashMap<String, Double> myMap,我加了pair1,pair2pair3對。來自LinkedHashMap的集合(值)是否保留了插入順序?

到現在我下面的循環:

for (Double currDouble : myMap.getValues()) {...} 

會停在第一Double對象在循環中的pair1的人嗎?而第二個pair2?或者它不一定是?

我檢查了類似的程序,它似乎確實保持插入順序,但會永遠是這樣嗎?

+4

它保持**鍵**的插入順序(不是**值**)。 –

回答

2

是的!

從LinkedHashMap文檔的第一句話: ...實現Map接口,具有可預測的迭代順序....通常是將鍵插入到映射中的順序(插入順序)。

如果一個鍵被重新插入(可能具有不同的值),它不會改變原始順序。

2

默認情況下,LinkedHashMap保留插入順序。儘管可以選擇切換到訪問順序,這可能是令人困惑的因素。

因此,要回答你的問題,,第一Double將從pair1pair2等第二鑑於你沒有設置LinkedHashMap訪問順序。

如果您仍然不確定這種行爲,您可以通過向LinkedHashMap添加一堆數據來對其進行測試,然後像您在問題中描述的那樣遍歷它。您會看到它將保留廣告訂單(或設置的訪問訂單)。

相關問題