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

如何从Google Guava Multimap中打印匹配键对应的值?

解决Multimap匹配键值打印问题

你的代码报错是因为value变量从未定义,根本没获取到匹配键对应的值。下面给你两种实用的修正方案:

方案1:遍历键时获取对应值

匹配到目标键后,直接调用Multimap的get(key)方法拿到对应的值集合(Multimap支持一键多值,所以返回的是集合类型),再打印:

dictionaryGG.keys().forEach((key) -> {
    if (userInput.equals(key)) {
        System.out.println("User Input equal to KEY");
        // 获取并打印对应的值集合
        System.out.println("Value associated with matching KEY: " + dictionaryGG.get(key));
    }
    System.out.println(key);
});

方案2:直接遍历键值对(更高效)

没必要单独遍历键再查值,直接遍历Multimap的键值对,一步拿到键和对应的值:

// 遍历单个键值对(适合逐个打印每个值)
dictionaryGG.entries().forEach(entry -> {
    String key = entry.getKey();
    Object value = entry.getValue(); // 根据你的实际数据类型替换Object
    if (userInput.equals(key)) {
        System.out.println("User Input equal to KEY");
        System.out.println("Value associated with matching KEY: " + value);
    }
});

// 或者按键分组打印所有对应值
dictionaryGG.asMap().forEach((key, values) -> {
    if (userInput.equals(key)) {
        System.out.println("User Input equal to KEY");
        System.out.println("Values associated with matching KEY: " + values);
    }
});

注意:如果是Guava的Multimap实现,get(key)返回的是Collection类型;其他Multimap实现逻辑类似,核心是必须通过键主动获取对应的值,不能直接使用未定义的value变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:05:43