You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何遍历Multimap特定键对应的所有值?

遍历Multimap特定键的所有值

没问题!遍历Multimap里某个特定键的所有值其实超简单~不同常用的Multimap实现(比如Guava或者Apache Commons的)都有现成的方法,我给你举几个实用的例子:

一、Guava Multimap(最常用的实现)

Guava的Multimap应该是日常开发里用得最多的了,它提供了get(key)方法,直接就能拿到这个键对应的所有值的集合(可能是List、Set这类,取决于你创建的Multimap类型),拿到集合后直接遍历就行:

import com.google.common.collect.Multimap;
import com.google.common.collect.ArrayListMultimap;

public class MultimapDemo {
    public static void main(String[] args) {
        // 创建一个ArrayListMultimap,键对应的值是有序列表
        Multimap<String, String> snackMultimap = ArrayListMultimap.create();
        snackMultimap.put("snack", "chips");
        snackMultimap.put("snack", "cookie");
        snackMultimap.put("snack", "candy");
        snackMultimap.put("drink", "soda");

        // 获取特定键"snack"的所有值
        Collection<String> snacks = snackMultimap.get("snack");

        // 普通for循环遍历
        for (String snack : snacks) {
            System.out.println("爱吃的零食:" + snack);
        }

        // 也可以用Lambda表达式简化遍历
        snacks.forEach(snack -> System.out.println("Lambda遍历:" + snack));
    }
}

小提示:get(key)方法很贴心,不管键是否存在,都会返回一个非null的集合——如果键没有对应值,就返回空集合,完全不用担心空指针异常~

二、Apache Commons Collections Multimap

如果你用的是Apache Commons的Multimap,思路也是一样的,用get(key)拿到值集合后遍历:

import org.apache.commons.collections4.Multimap;
import org.apache.commons.collections4.map.MultiValueMap;

public class ApacheMultimapDemo {
    public static void main(String[] args) {
        Multimap<String, String> petMultimap = new MultiValueMap<>();
        petMultimap.put("pet", "dog");
        petMultimap.put("pet", "cat");
        petMultimap.put("pet", "hamster");

        // 获取特定键的所有值
        Collection<String> pets = petMultimap.get("pet");

        // 遍历输出
        for (String pet : pets) {
            System.out.println("家里的宠物:" + pet);
        }
    }
}

三、自定义Multimap的情况

如果你是自己实现的Multimap,核心思路也没变:根据键找到对应的容器(比如List、Set),然后直接遍历这个容器就可以了~另外要注意,如果遍历过程中需要修改值,最好用迭代器的remove()方法,或者用线程安全的实现,避免并发修改异常哦。

内容的提问来源于stack exchange,提问作者blah_crusader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:18:24