Guava 库中的 `Multimap` 是一个允许一个键对应多个值的集合 Guava `Multimap` 的基本代码示例:

Guava 库中的 Multimap 是一个允许一个键对应多个值的集合。以下是一些使用 Guava Multimap 的基本代码示例:

引入 Guava 库

确保你的项目中已经添加了 Guava 库的依赖。如果你使用 Maven,可以在 pom.xml 文件中添加以下依赖:

xml 复制代码
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version> <!-- 请使用最新的版本号 -->
</dependency>

创建和添加元素

java 复制代码
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;

public class MultimapExample {
    public static void main(String[] args) {
        // 创建一个Multimap
        Multimap<String, String> multimap = ArrayListMultimap.create();

        // 添加元素
        multimap.put("fruit", "apple");
        multimap.put("fruit", "banana");
        multimap.put("color", "red");
        multimap.put("color", "blue");
        multimap.put("fruit", "cherry");

        // 打印Multimap
        System.out.println(multimap);
    }
}

查询和获取值

java 复制代码
        // 根据键查询值
        System.out.println(multimap.get("fruit")); // 输出:[apple, banana, cherry]
        System.out.println(multimap.get("color")); // 输出:[red, blue]

        // 检查Multimap是否包含某个键
        System.out.println(multimap.containsKey("fruit")); // 输出:true
        System.out.println(multimap.containsKey("vegetable")); // 输出:false

        // 检查Multimap是否包含某个键值对
        System.out.println(multimap.containsEntry("fruit", "apple")); // 输出:true
        System.out.println(multimap.containsEntry("fruit", "orange")); // 输出:false

删除元素

java 复制代码
        // 删除一个键值对
        multimap.remove("fruit", "apple");
        System.out.println(multimap.get("fruit")); // 输出:[banana, cherry]

        // 删除所有与某个键关联的值
        multimap.removeAll("color");
        System.out.println(multimap.keySet()); // 输出:[fruit]

元素迭代

java 复制代码
        // 重新添加元素以进行迭代演示
        multimap.put("color", "red");
        multimap.put("color", "blue");

        // 迭代Multimap的键
        for (String key : multimap.keySet()) {
            System.out.println("Key: " + key);
            for (String value : multimap.get(key)) {
                System.out.println("Value: " + value);
            }
        }
        // 输出:
        // Key: fruit
        // Value: banana
        // Value: cherry
        // Key: color
        // Value: red
        // Value: blue

其他操作

java 复制代码
        // 获取所有键的集合
        System.out.println(multimap.keys()); // 输出:[fruit, color]

        // 获取Multimap的大小(键值对的总数)
        System.out.println(multimap.size()); // 输出:4

        // 清空Multimap
        multimap.clear();
        System.out.println(multimap.isEmpty()); // 输出:true

这些示例展示了如何创建 Multimap,添加和删除元素,查询键和键值对,以及迭代 Multimap 中的元素。Guava 提供了多种 Multimap 实现,例如 ArrayListMultimapHashMultimapLinkedHashMultimapTreeMultimapSetMultimap,你可以根据需要选择适合的实现。

相关推荐
B站_计算机毕业设计之家3 小时前
猫眼电影数据可视化与智能分析平台 | Python Flask框架 Echarts 推荐算法 爬虫 大数据 毕业设计源码
python·机器学习·信息可视化·flask·毕业设计·echarts·推荐算法
PPPPPaPeR.3 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
橙露3 小时前
Java并发编程进阶:线程池原理、参数配置与死锁避免实战
java·开发语言
froginwe113 小时前
C 标准库 - `<float.h>`
开发语言
JaydenAI3 小时前
[拆解LangChain执行引擎] ManagedValue——一种特殊的只读虚拟通道
python·langchain
骇城迷影3 小时前
Makemore 核心面试题大汇总
人工智能·pytorch·python·深度学习·线性回归
长安牧笛3 小时前
反传统学习APP,摒弃固定课程顺序,根据用户做题正确性,学习速度,动态调整课程难度,比如某知识点学不会,自动推荐基础讲解和练习题,学习后再进阶,不搞一刀切。
python·编程语言
2501_916008893 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
码界筑梦坊4 小时前
330-基于Python的社交媒体舆情监控系统
python·mysql·信息可视化·数据分析·django·毕业设计·echarts