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