Map的遍歷方式,常用的key-value遍歷方式
阿新 • • 發佈:2022-12-06
在開發過程中經常會遇到 map 的遍歷,本文將會介紹四種常用的 key-value 遍歷方式
說明:
增強 for 迴圈遍歷
- 先取出 map 的 keySet,進行遍歷,再取出對應 key 的 value 值
- 先取出 map 的 entrySet,進行遍歷,再取出對應 key - value 值
迭代器遍歷
- 先取出 map 的 keySet,進行遍歷,再取出對應 key 的 value 值
- 先取出 map 的 entrySet,進行遍歷,再取出對應 key - value 值
Map中的 keySet() 用於取 map 中的所有 key 的集合
Map中的 entrySet() 用於取 map 中的所有 entry 的集合。
Entry 是一個包含 key 和 value 的鍵值對物件,內部
先構建一個 map 集合:
1、構建集合
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
2、遍歷
2.1、方法一:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增強迴圈 for 遍歷
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增強迴圈 for 遍歷===="); Set keyset = hashMap.keySet(); for(Object key:keyset){ System.out.println(key+"-"+hashMap.get(key)); }
執行結果如下:
2.2、方法二:先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍歷取 value
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍歷取 value===="); Iterator iterator = keyset.iterator(); while(iterator.hasNext()){ Object key = iterator.next(); System.out.println(key+"-"+hashMap.get(key)); }
執行結果:
2.3、方法三:先用 hashMap.通過entrySet() 方法取出所有的 key-value 的集合,再用增強迴圈 for 遍歷一一取出 key 和 value
System.out.println("====3、先用 hashMap.通過entrySet() 方法取出所有的 key-value 的集合,再用增強迴圈 for 遍歷一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
執行結果:
2.4、方法四:先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增強迴圈 for 遍歷
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍歷一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
執行結果:
3、完整程式碼
package com.example.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");
hashMap.put("key4","value4");
/*1、先用keySet()取出所有key值,再取出對應value--增強for迴圈遍歷*/
System.out.println("====1、先用 hashMap.keySet() 方法取出所有的 key 的集合,再用增強迴圈 for 遍歷====");
Set keyset = hashMap.keySet();
for(Object key:keyset){
System.out.println(key+"-"+hashMap.get(key));
}
/*2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍歷取 value*/
System.out.println("====2、先用hashmap.keySet() 方法取出所有 key 的集合,再用迭代器遍歷取 value====");
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+hashMap.get(key));
}
/*3、先用 hashMap.通過entrySet() 方法取出所有的 key-value 的集合,再用增強迴圈 for 遍歷一一取出 key 和 value*/
System.out.println("====3、先用 hashMap.通過entrySet() 方法取出所有的 key-value 的集合,再用增強迴圈 for 遍歷一一取出 key 和 value====");
Set set = hashMap.entrySet();
for(Object key:set){
Map.Entry entry = (Map.Entry) key;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
/*4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍歷一一取出 key 和 value*/
System.out.println("====4、先用 hashMap.entrySet() 方法取出所有的 key-value 的集合,再用迭代器遍歷一一取出 key 和 value====");
Set set1 = hashMap.entrySet();
Iterator iterator1 = set1.iterator();
while(iterator1.hasNext()){
Object itset = iterator1.next();
Map.Entry entry = (Map.Entry) itset;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
}
}