LinledHashMap、Hashtable集合

LinledHashMap

Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。

  底层:哈希表+链表(记录元素顺序)

打印输出一下:

  

    public static void main(String[] args) {
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("a","b");
map.put("c","d");
map.put("e","f");
map.put("a","c");
System.out.println(map);
}
}

map是不可以存储重复元素的

 

 

 

 而且还是有序的

案例:

  

    public static void main(String[] args) {
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("a","b");
map.put("c","d");
map.put("e","f");
map.put("a","c");
System.out.println(map);
}

Hashtable集合

Hashtable集合:底层也是一个哈希表,是一个线程安全的集合,是单集合,速度慢

Hashtable不可以存储null值,null键

案例:

 

    public  static  void aa(){
Hashtable<Integer, String> hashtable = new Hashtable<>();
hashtable.put(null,"a");
hashtable.put(2,"a");
hashtable.put(null,"a");
System.out.println(hashtable);
}
}

写入空值的话 会报错

 

 

 

posted @ 2022-07-08 10:02  一位程序袁  阅读(29)  评论(0编辑  收藏  举报