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