java 遍歷Map的幾種方法總結(jié)
一、迭代key&value
第一種方式:迭代entrySet
1.方法一
/** * entrySet集合for-each循環(huán)(推薦使用) * 這種方式必須聲明泛型類型: * 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(); //根據(jù)鍵獲取值 Object value = map.get(key); System.out.println('鍵:'+ key + ',值:' + value);}
4.方法四
/** * keySet集合for-each循環(huán) */for (String key:map.keySet()) { System.out.println(key + '=' + map.get(key));}
5.小結(jié)
注意:
遍歷Map類集合KV,推薦使用entrySet而不是keySet
原因:
keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為Iterator對(duì)象,另一次是從hashMap中取出key所對(duì)應(yīng)的value;
而entrySet只是遍歷了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
說明:
values()返回的是V值集合,是一個(gè)list集合對(duì)象;keySet()返回的是K值集合,是一個(gè)Set集合對(duì)象;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的幾種方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于java 遍歷Map的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的代碼(JSON模塊)2. Python基礎(chǔ)之畫圖神器matplotlib3. JavaScript實(shí)現(xiàn)多球運(yùn)動(dòng)效果4. Java類加載機(jī)制實(shí)現(xiàn)步驟解析5. Spring security 自定義過濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)6. Python OpenCV去除字母后面的雜線操作7. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法8. 增大python字體的方法步驟9. Python TestSuite生成測(cè)試報(bào)告過程解析10. Python os庫常用操作代碼匯總
