1,Hashmap是我们用得比较多的集合,产生于jdk 1.2版本,源码put方法有个判断:
if(key==null)
return putForNullKey(value);
可以看出hashmap是支持存放键key值为null;
HashMap是线程不安全的,所以也相对更快
2,Hashtable产生于jdk 1.1版本,相对于HashMap 的方法,HashTable是线程安全的,在put方法上有个判断:
if (value == null) {
throw new NullPointerException();
}
和 int hash = hash(key); //获取hash值
说明HashTable是 不支持key,value为null的 会报空指针异常
3,TreeMap是有顺序的
TreeMap实现了SortMap接口 说明根据 存入集合,是有顺序的,默认是按键值的升序排的序
可用iterator遍历,得到想要的序
treeMap的键值key不能为null
4,LinkedHashMap 插入是有顺序的,
用iterator遍历LinkedHashMap ,先进先出,基于链表的设计,
也可以在构造时带参,根据参数采取排序
LinkedHashMap 是支持存放键key值为null;