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集合中
        }


    }
}