1. 程式人生 > 其它 >Map的遍歷方式,常用的key-value遍歷方式

Map的遍歷方式,常用的key-value遍歷方式

在開發過程中經常會遇到 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());
        }
    }
}