Map 集合是一个双列集合,包含1个 key, 1个 value
Map 集合中的元素, key, value 可以是相同,或不同类型的
key 是不允许重复的, value 允许重复
key 与 value 是一一对应关系
1.导包
java.util.Map;
2.构造方法
使用多态创建子类实现类
Map<String,String> map = new HashMap<>();
3.方法
1.添加元素
//1.添加元素
String m1 = map.put("水浒传","施耐庵");
map.put("三国演义","罗贯中");
map.put("三国演义2","罗贯中");
String m3 = map.put("水浒传","施耐庵2");// key 重复时,会自动覆盖
//添加的 key 为空时,返回null,否则返回 value
System.out.println("m1:"+m1+",m3:"+m3);
System.out.println(map);
2.删除元素
//2.删除元素
String s4 = map.remove("西游记"); //没有此 key ,返回 null
String s5 = map.remove("水浒传"); //删除水浒传,返回被删除的值
System.out.println("s4:"+s4+",s5:"+s5);
System.out.println(map);
3.获取 value
//3.获取元素
String s6 = map.get("水浒传"); //没有此 key,返回 null
String s7 = map.get("三国演义"); //存在此 key,返回 value
System.out.println("s6:"+s6+",s7:"+s7);
4.查询是否包含元素
//4.查询是否包含元素
boolean b1 = map.containsKey("红楼梦"); //没有此 key,返回 null
boolean b2 = map.containsKey("三国演义"); //存在此 key,返回 value
System.out.println("b1:"+b1+",b2:"+b2);
5.遍历 map 集合
//5.1 -> keySet 遍历
Set<String> set = map.keySet(); //1.得到所有的 key
for(String key : set){ //2.使用增强 for 遍历 key
String value = map.get(key); //3.使用 get 方法获取 value
System.out.println(key+"="+value);
}
//5.2 -> entrySet 遍历
Set<Map.Entry<String,String>> set2 = map.entrySet(); //1.获取所有的 entry 对象
for(Map.Entry<String,String> entry : set2){ //2.使用增强 for 遍历 entry
String key = entry.getKey(); //3.取得 key
String value = entry.getValue(); //4.取得 value
System.out.println(key+"="+value);
}
4.注意事项
Map 接口的唯一直接子类 AbstractMap
该抽象类中提供了很多共性方法,并重写了 toString()方法
直接打印 Map 及其子类的集合时,以 key=value 显示,为空时显示 {}