Java HashMap 集合筆記
阿新 • • 發佈:2019-01-07
需要匯入的包
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
HashMap的基本方法
//泛型 <> 表示儲存資料的型別 //<Integer,String>,表示key是Integer value是String Map<Integer,String> map = new HashMap<Integer,String>(); map.put(1,"第一名"); map.put(2,"第二名"); map.put(3,"第三名"); map.put(4,"第四名"); int size = map.size(); //Map集合 對映的數量 System.out.println("mapsize()="+size); //輸出結果:4 //獲取所有的key,返回型別為Set Set<Integer> keys = map.keySet(); //Set介面 System.out.println("map.keySet()="+ keys); //輸出結果:[1,2,3,4] //獲得所有的value,返回型別為 Collection<String> values = map.values(); //Collection介面 System.out.println("map.values():" + values); //輸出結果:[第一名, 第二名, 第三名, 第四名] //map.get(key) 獲取key為 2,對應的value值 System.out.println(map.get(2)); //輸出結果:第二名 //如果key或者value為空,則返回 null System.out.println(map.get(10)); //輸出結果:null //遍歷Map集合 map.forEach((k,v)->{ System.out.println(k+":"+v); }); /*輸出結果: * * 1:第一名 2:第二名 3:第三名 4:第四名 * * */ System.out.println(); //map.remove(key) 根據key移除map中的與該key相關的對映, map.remove(4); map.forEach((k,v)->{ System.out.println(k+":"+v); }); /*輸出結果: * * 1:第一名 2:第二名 3:第三名 * * */ System.out.println(); //map1.putAll(map2)//把一個map2集合合併到另一個map1集合裡,若key有重複的,則map2的鍵值覆蓋與map1重複的鍵值 //map.clear();//清空Map集合中所有的鍵值,清空後,map.size()為0
遍歷HashMap
//Map.Entry //Entry是Map集合的一個內部介面,用於封裝Map集合的一組鍵值(key和value) //可通過entrySet()一次性同時獲取key和value Map<Integer,String> map2 = new HashMap<Integer,String>(); map2.put(1,"First"); map2.put(2,"Second"); map2.put(3,"Third"); map2.put(4,"Fourth"); //遍歷Map方法1,二次取值,效率最慢 for(Integer key : map2.keySet()) { System.out.println(key+" : "+map2.get(key)); } //遍歷Map方法2 map2.forEach((k,v)->{ System.out.println(k+":"+v); }); //遍歷Map方法3 //只取一次 速度最快 System.out.println("通過Map.entrySet()使用iterator遍歷key和value:"); Map.Entry<Integer, String> entry; //Iterator只能在Collection集合中使用,不能在Map中使用,可通過Map的keySet() entrySet() 使用Iterator Iterator<Entry<Integer, String>> it = map2.entrySet().iterator(); while(it.hasNext()) { entry = it.next(); System.out.println( entry.getKey() + " : " + entry.getValue() ); } //遍歷Map方法4 System.out.println("通過Map.entrySet遍歷key和value"); for(Map.Entry<Integer,String> entry2 : map2.entrySet()) { System.out.println( entry2.getKey() + " : " + entry2.getValue() ); } //Map.entrySet()迭代器會生成Entry Iterator,其返回的例項是一個包含key/value鍵值對的物件。 //而keySet()中迭代器返回的只是key物件,還需要到map中二次取值。故entrySet()要比keySet()快一倍左右。
參考連結:https://blog.csdn.net/songfeihu0810232/article/details/80156626
參考連結:https://blog.csdn.net/weixin_41763995/article/details/80223244