HashMap 遍历的几种方式

https://blog.csdn.net/devin_xin/article/details/106348698

package test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @Author: EEDC
 * @Description:
 * @Date: create in 2021/3/3 18:24
 */
public class HashMapForEachTest {

    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        hashMap.put("A", 1111);
        hashMap.put("B", 2222);
        hashMap.put("C", 3333);
        hashMap.put("D", 4444);
        hashMap.put("E", 4444);

        test1(hashMap);
        test2(hashMap);
        test3(hashMap);
        test4(hashMap);
    }

    // 利用entrySet()进行遍历
    private static void test1(HashMap<String, Integer> hashMap) {
        for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
        System.out.println("-----------------方法1:end-----------------");
    }

    // 利用keySet()、values() 分别遍历key与value
    private static void test2(HashMap<String, Integer> hashMap) {
        // 遍历key
        for (String key : hashMap.keySet()) {
            System.out.println("key:" + key);
        }

        // 遍历value
        for (Integer val : hashMap.values()) {
            System.out.println("value:" + val);
        }
        System.out.println("-----------------方法2:end-----------------");
    }

    // 使用带泛型的迭代器进行遍历
    private static void test3(HashMap<String, Integer> hashMap) {
        Iterator<Map.Entry<String, Integer>> mapEntry = hashMap.entrySet().iterator();
        while (mapEntry.hasNext()) {
            Map.Entry<String, Integer> col = mapEntry.next();
            System.out.println(col.getKey() + ":" + col.getValue());
        }
        System.out.println("-----------------方法3:end-----------------");
    }

    // 通过Java8 Lambda表达式遍历
    private static void test4(HashMap<String, Integer> hashMap) {
        hashMap.forEach((k, v) -> {
            System.out.println(k + ":" + v);
        });
        System.out.println("-----------------方法4:end-----------------");
    }


}
Last Updated:
Contributors: EEDC