java 遍歷Map的幾種方法總結
阿新 • • 發佈:2020-10-22
一、迭代key&value
第一種方式:迭代entrySet
1.方法一
/** * entrySet集合for-each迴圈(推薦使用) * 這種方式必須宣告泛型型別: * a.bizData使用Map接收必須得宣告泛型;b.for-each()裡的Entry的泛型控制可有可無 * Map的泛型控制通常使用<String,Object> */ Map<String,Object> bizData = dataBus.getBizData(); for (Entry<String,Object> entry : bizData.entrySet()) { System.out.println(entry.getKey() + "=" + entry.getValue()); }
2.方法二
/** * entrySet集合迭代 */ Iterator iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String,Object> entry = iterator.next(); System.out.println(entry.getKey() + "=" + entry.getValue()); }
第二種方式:迭代keySet
3.方法三
/** * keySet集合迭代 */ Iterator iterator = map.keySet().iterator(); while (iterator.hasNext()) { //獲取鍵 String key = iterator.next().toString();//或String key = (String)iterator.next(); //根據鍵獲取值 Object value = map.get(key); System.out.println("鍵:"+ key + ",值:" + value); }
4.方法四
/** * keySet集合for-each迴圈 */ for (String key:map.keySet()) { System.out.println(key + "=" + map.get(key)); }
5.小結
注意:
遍歷Map類集合KV,推薦使用entrySet而不是keySet
原因:
keySet其實是遍歷了2次,一次是轉為Iterator物件,另一次是從hashMap中取出key所對應的value;
而entrySet只是遍歷了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
說明:
values()返回的是V值集合,是一個list集合物件;keySet()返回的是K值集合,是一個Set集合物件;entrySet()返回的是K-V值組合集合。
二、只迭代key
//只遍歷鍵 for (String key:map.keySet()) { System.out.println(key); }
三、只迭代value
//只遍歷值 for (Object val:map.values()) { System.out.println(val); }
以上就是java 遍歷Map的幾種方法總結的詳細內容,更多關於java 遍歷Map的資料請關注我們其它相關文章!