/*
Map: 存储元素的特点是每一个元素是一个键值对{【name:"魏一民"】 , 【age:18】}
Map集合的共同拥有的特点:
1、Map集合中的元素,键是唯一的,不会在一个Map集合发现两个相同的键
1001:魏一民
1002:陈真
1001:小虎
2、Map集合中,值是可以发生重复的
1001:魏一民
1002:魏一民
3、Map集合的唯一性,排序都是针对键来说的,值是跟着键走的
Map(接口)
- HashMap(底层数据结构是哈希表,元素要想保证唯一性的话,需要重写hashCode和equals方法)
-
Map接口中的成员方法:
V put(K key,V value) 向集合中添加键值对元素 返回的是被覆盖的键对应的那个值
V remove(Object key) 根据键删除一个键值对元素 返回被删除键值对的值
void clear() 清空集合
boolean containsKey(Object key) 判断键是否存在
boolean containsValue(Object value) 判断值是否存在
boolean isEmpty() 判断是否为空
int size() 获取集合中的键值对的个数
*/
package com.shujia.day15;
import java.util.HashMap;
import java.util.Hashtable;
/*
面试题:HashMap和Hashtable的区别
区别1:HashMap中的键和值都允许为null值,Hashtable的键和值都不允许null
区别2:HashMap是线程不安全的,Hashtable是线程安全的,因为它的方法基本都有synchronized
*/
public class HashMapDemo2 {
public static void main(String[] args) {
HashMap<String, String> map1 = new HashMap<>();
// map1.put(null,"qwe");
// map1.put(null,null);
// map1.put("qwerwqr",null);
Hashtable<String, String> map2 = new Hashtable<>();
// map2.put(null,"qwe");
// System.out.println(map2);
// map2.put("zxc",null);
}
}