Map接口
1、Map
是双列集合,数据存储的形式是key - value 形式的,根据key来获取value值;每次的操作都是针对一个键值对来进行的,键和值总是依赖在一起,相当于是两列数据在同时存储,称为“双列集合”
2、map的特点:
1、键(key)是唯一的,在一个Map中,不能同时存在两个相同的键
2、值(value)可以不唯一,在一个Map中,可以同时存在多个相同的值
3、每个确定的键,一定只能对应一个唯一的值
3、map常用的方法
1、put(K key, V value)
1、如果集合中已经存在key这个键,那么修改对应的value
2、如果集合中没有存在key这个键,那么就新增一对键值对
Map<String, Integer> map = new HashMap<>();
map.put("1", 10);
map.put("2", 12);
map.put("1", 22);
System.out.println(map.get("1"));
结果:22
2、remove(Object key)
根据传入的键,删除对应的键值对
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("1", 10);
map.put("2", 12);
map.put("3", 22);
System.out.println("1" + map);
map.remove("2");
System.out.println("2" + map);
}
结果 :1{1=10, 2=12, 3=22}
2{1=10, 3=22}
3、get(K key)
根据传入的键,获取对应的值
4、containsKey(K key)
判断是否包含指定的键
map.put("2", 12);
map.put("3", 22);
System.out.println(map.containsKey("2"));
结果:true
5、containsValue(V value)
判断是否包含指定的值
map.put("2", 12);
map.put("3", 22);
System.out.println(map.containsValue("2"));
结果 : false
6、clear()
清空集合中所有的对应关系
7、isEmpty()
判断集合中的对应关系是否为空
8、size()
获取集合中的对应关系的对数
4、map遍历
两种遍历思路:
1、先获取到Map中的所有的键,再根据键获取对应的值
2、先获取到Map中的所有的键值对对象,再获取键值对对象中的键和值
第一种 :通过keySet()方法获取key值,得到set集合,遍历set的值(map的key),然后根据set中的值获取map的值(map.get(key))
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("abc", 3);
map.put("qq", 2);
map.put("zxcv", 4);
for (String key : map.keySet()) {
System.out.println(key + "..." + map.get(key));
}
}
第二种 ;
获取map中的键值对对象(entry:就是一对对的键和值,形成的Map中的一条记录,形成一个对象,键值对对象) ,通过entrySet()获取键值对对象,
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("abc", 3);
map.put("qq", 2);
map.put("zxcv", 4);
for (Map.Entry<String, Integer> en : map.entrySet()) {
System.out.println(en.getKey() + "..." + en.getValue());
}
}