Map集合的常用方法。
Map集合是一个双列集合,里面的每个元素都是一个键值对。
Map<K,V> 有两个泛型, K 表示Map集合中键的类型。 V 表示Map集合中值的数据类型。
常用方法:
(重要)V put(K key, V value): 向Map集合中添加键值对。
(重要)V get(Object key): 根据key获取到value的值。
V remove(Object key):根据key直接删除整个的键值对。 返回被删除的value
Map接口最常用的实现类是HashMap
public class Demo01MapMethod {
public static void main(String[] args) {
Map<Integer ,String> map=new HashMap<>();
map.put(100,"刘德华");
map.put(200,"张学友");
map.put(300, "郭富城");
//打印map集合
System.out.println("map"+map);
//获取键值为100的元素对应的值
String s = map.get(100);
System.out.println(s);//刘德华
// 如果此时获取的键值不存在,结果就是null
System.out.println(1000);//null
// 删除键值为200的键值对
String s2 = map.remove(200);
System.out.println(s2);//张学友
System.out.println(map);//刘德华郭富城
System.out.println("==========================");
// 创建Map集合,两个参数都是字符串
Map<String,String> map2=new HashMap<>();
map2.put("it001","渣渣辉");
map2.put("it002","古天乐");
map2.put("it003","陈小春");
System.out.println("map2:"+map2);//打印map2
//如果使用put方法,向map集合中添加键值对,如果这个key已经存在,就会把原来的覆盖掉。
map2.put("it003", "林子聪");
System.out.println(map2);//如果调用put方法,产生了覆盖的效果,那么返回值就是被覆盖掉的值。;
System.out.println(map2.put("it004","郑伊健"));//如果能添加,他的返回值是null;
}
}
/*Map集合的遍历
Map集合能够直接使用增强for或者迭代器吗?? 不可以。
Map集合遍历方式:
我们可以先拿到Map集合中所有的key, 把所有的key放入到一个Set集合中,然后再遍历这个Set集合,拿到
里面的每一个key,根据key获取value。
方法:
Set<K> keySet():可以获取Map集合中所有的key,并且把这些key放入到Set集合中返回
具体遍历的步骤:
1. 调用keySet方法,得到存放所有键的Set集合
2. 遍历这个Set集合,拿到Set集合中的每一个键
3. 得到键之后,调用map的get方法,根据key获取value。
*/
public class Demo02MapForecch {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(001, "dkjfsd");
map.put(002, "dkjffafsd");
map.put(003, "dkjfsfdsfdsafsdfsdad");
Set<Integer> set = map.keySet();
for (Integer i : set) {
String s = map.get(i);
System.out.println(i+" :"+s);
}
}
}
/*
Map集合的第二种方式(entrySet遍历)
步骤:
1. 获取到Map集合中所有的Entry对象,把这些Entry对象放入到一个set集合中
2. 遍历这个Set集合,拿到里面的每一个Entry对象
3. 调用Entry对象的方法,获取到这个Entry对象中的key和value。
如何获取所有的Entry对象, 调用Map集合的entrySet方法:
Set<Map.Entry<K,V>> entrySet():得到存放所有Entry对象的Set集合。
如何获取到Entry对象中的key和value。 调用Entry对象的getKey和getValue就可以。
K getKey():获取所有的key
V getValue() 获取所有的value
两种遍历方式,推荐第一种(keySet)*/
public class Demo03EnteryForeach {
public static void main(String[] args) {
Map map = new HashMap();
map.put("周杰伦", "没有钱");
map.put("林俊杰", "很有钱");
map.put("张飞", "特别有钱");
Set set = map.entrySet();
for (Object o : set) {
System.out.println(o);//获取到Map集合中所有的Entry对象,把这些Entry对象放入到一个set集合中
}
}
}