Map雙列集合的用法,遍歷方法
阿新 • • 發佈:2019-02-01
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 voidmain(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集合中 } } }