1. 程式人生 > 程式設計 >java 遍歷Map的幾種方法總結

java 遍歷Map的幾種方法總結

一、迭代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的資料請關注我們其它相關文章!