LinkedHashMap子类
HashMap虽然是Map集合最为常用的一个子类,但是其本身所保存的数据都是无序的(有序与否对Map没有影响),如果希望Map集合之中保存的数据保存的顺序为其增加数据,则就可以使用LinkedHashMap,从名字就可以得出这个类一定是基于链表实现的。
既然是链表保存,一般在使用LinkedHashMap类的时候往往数据不要过多(影响性能)。
观察LinedHashMap定义形式:
public class LinkedHashMap<K,V>
extends HashMap<K,V>
implements Map<K,V>
通过继承可以发现,LinkedHashMap是HashMap子类,继承关系入如下:
范例:使用LinkedHashMap
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class MapDemo {
public static void main(String[] args) {
Map<String,Integer> linkedHashMap = new LinkedHashMap<String,Integer>();
linkedHashMap.put("one",1);
linkedHashMap.put("two",2);
linkedHashMap.put("two",20); //同HashMap一样会覆盖之前的key
linkedHashMap.put(null,0);
linkedHashMap.put("zero",null);
System.out.println(linkedHashMap);
}
}
{one=1, two=20, null=0, zero=null}
通过结果可以发现所有的保存顺序为添加的顺序。