Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java map遍历


在 Java 中,可以使用不同的方式来遍历 Map。这里我将介绍几种常见的遍历 Map 的方式,包括使用迭代器、for-each 循环、Java 8 的 Stream 以及一些第三方库(如 Guava)。

使用迭代器(Iterator)遍历 Map

使用迭代器是一种传统的方式来遍历 Map,它适用于所有 Java 版本。

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

public class MapIterationExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);

        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

使用 for-each 循环遍历 Map

从 Java 5 开始,可以使用 for-each 循环遍历 Map 的键或值。

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

public class MapIterationExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);

        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

使用 Java 8 的 Stream 遍历 Map

在 Java 8 及更高版本中,可以使用 Stream API 来遍历 Map 的键、值或键值对。

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

public class MapIterationExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);

        // 遍历键值对
        map.forEach((key, value) -> {
            System.out.println("Key: " + key + ", Value: " + value);
        });

        // 遍历键
        map.keySet().forEach(key -> {
            System.out.println("Key: " + key);
        });

        // 遍历值
        map.values().forEach(value -> {
            System.out.println("Value: " + value);
        });
    }
}

使用 Guava 库遍历 Map

如果你使用 Guava 库,可以使用 Maps 类来简化 Map 的遍历。

Maven 依赖坐标:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1-jre</version>
</dependency>

Gradle 依赖坐标:

implementation 'com.google.guava:guava:30.1-jre'

使用 Guava 来遍历 Map:

import com.google.common.collect.Maps;

import java.util.Map;

public class MapIterationExample {
    public static void main(String[] args) {
        Map<String, Integer> map = Maps.newHashMap();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 3);

        // 遍历键值对
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

这些是一些常见的遍历 Map 的方式,你可以根据项目的需求选择适合的方式。在 Java 8 及更高版本中,使用 Stream API 可以提供更多的便利和功能。如果需要使用第三方库来处理 Map,Guava 是一个常见的选择。