LinkedMap繼承了HashMap,最大的區別就是LinkedMap遍歷的時候可以按照put的順序給出結果。java
demo:指針
public static void main(String[] args) { Map<String, String> map = new LinkedHashMap<String, String>(); map.put("11", "1"); map.put("12", "2"); map.put("10", "3"); map.put("15", "0"); map.put("14", "0"); Iterator iterator = map.entrySet().iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
打印結果:code
11=1 12=2 10=3 15=0 14=0
能夠看到打印的結果徹底是插入的順序。繼承
LinkedHashMap爲何有這種功能呢。 其實很簡單。LinkedHashMap在Entry<K,V> 中添加了兩個指針,before,after.it
在put的時候上一個結點會把本身的after設置爲新節點,新節點的before會設置爲上一個結點 。刪除的時候也會修改這兩個指針,這樣就是一個雙鏈表結構了,遍歷的時候天然就能按照插入的順序來給出結果了。class