HashMap
特性:
a. 底层数据结构是 哈希表。
b. 允许null键和null值。
c. 不保证映射的顺序,特别是它不保证该顺序恒久不变。
d. 不同步。
public class HashMapDemo1 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("刘强东", "章泽天");
map.put("文章", "马伊利");
map.put("王宝强", "马蓉");
map.put("贾乃亮", "李小璐");
map.put(null, "Allen");
map.put("Andrew", null);
System.out.println(map);
//{null=Allen, 贾乃亮=李小璐, 文章=马伊利, 王宝强=马蓉, Andrew=null, 刘强东=章泽天}
}
}
HashMap VS Hashtable
共同点:底层的数据结构都是 哈希表
不同点:
a. HashMap的键和值可以是null, Hashtable不可以
b. HashMap是不同步的, Hashtable是同步的
public class HashMapDemo2 {
public static void main(String[] args) {
Hashtable<String, String> table = new Hashtable<>();
table.put("刘强东", "章泽天");
table.put("文章", "马伊利");
table.put("王宝强", "马蓉");
table.put("贾乃亮", "李小璐");
System.out.println(table);
// 添加null键
table.put(null, "Allen"); //NullPointerException
// 添加null值
table.put("Andrew", null); //NullPointerException
}
}
附一个整理的很不错博客
https://blog.csdn.net/xuhuaabc/article/details/91475761