0
這裏是一個LinkedHashMap,想象它裏面有很多值。當重寫鍵時,LinkedHashMap#會保持順序嗎? (JAVA)
LinkedHashMap map = new LinkedHashMap <>();
我的問題是,如果其中一個現有值是,例如,在索引4並且同一個鍵被輸入到映射中,它是否會簡單地替換該值並保持在4?或者,它會添加到底?
這裏是一個LinkedHashMap,想象它裏面有很多值。當重寫鍵時,LinkedHashMap#會保持順序嗎? (JAVA)
LinkedHashMap map = new LinkedHashMap <>();
我的問題是,如果其中一個現有值是,例如,在索引4並且同一個鍵被輸入到映射中,它是否會簡單地替換該值並保持在4?或者,它會添加到底?
的documentation of LinkedHashMap
明確地指出了這一點:
該鏈接列表定義迭代排序,這通常是在哪個鍵被插入到圖(插入順序)的順序。請注意,如果某個關鍵字重新插入到地圖中,廣告訂單不會受到影響。 (A鍵
k
重新插入地圖m
如果在m.containsKey(k)
將返回true
之前立即調用m.put(k, v)
被調用。)
所以值被替換,但迭代順序將保持不變。就你的例子而言,鍵4的輸入將保持在迭代的相同位置。