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

news/2024/12/22 1:52:27/

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

引入 Guava 库

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

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

创建和添加元素

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;public class MultimapExample {public static void main(String[] args) {// 创建一个MultimapMultimap<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");// 打印MultimapSystem.out.println(multimap);}
}

查询和获取值

        // 根据键查询值System.out.println(multimap.get("fruit")); // 输出:[apple, banana, cherry]System.out.println(multimap.get("color")); // 输出:[red, blue]// 检查Multimap是否包含某个键System.out.println(multimap.containsKey("fruit")); // 输出:trueSystem.out.println(multimap.containsKey("vegetable")); // 输出:false// 检查Multimap是否包含某个键值对System.out.println(multimap.containsEntry("fruit", "apple")); // 输出:trueSystem.out.println(multimap.containsEntry("fruit", "orange")); // 输出:false

删除元素

        // 删除一个键值对multimap.remove("fruit", "apple");System.out.println(multimap.get("fruit")); // 输出:[banana, cherry]// 删除所有与某个键关联的值multimap.removeAll("color");System.out.println(multimap.keySet()); // 输出:[fruit]

元素迭代

        // 重新添加元素以进行迭代演示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

其他操作

        // 获取所有键的集合System.out.println(multimap.keys()); // 输出:[fruit, color]// 获取Multimap的大小(键值对的总数)System.out.println(multimap.size()); // 输出:4// 清空Multimapmultimap.clear();System.out.println(multimap.isEmpty()); // 输出:true

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


http://www.ppmy.cn/news/1557077.html

相关文章

极狐GitLab 正式发布安全补丁版本 17.6.2、17.5.4、 17.4.6

本分分享极狐GitLab 补丁版本 17.6.2, 17.5.4, 17.4.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任何…

R-CNN算法详解及代码复现

算法背景 在目标检测领域的发展历程中,RCNN算法的出现标志着一个重要里程碑。在RCNN问世之前,研究人员已经探索了多种目标检测方法,为后续突破奠定了基础: 滑动窗口 :一种早期常用的技术,通过在图像上移动不同大小的窗口来检测潜在目标。 选择性搜索 :一种更先进的候选区…

Magento2项目部署笔记

一.去获取Adobe Commerce的个人秘钥 Adobe Commerce Extensions & Themes for Your Online Store | Marketplace 这个个人秘钥不收费&#xff0c;用于作为下载Magento2源代码的凭证 二. 检查Magento2最新版本 以及最新版本对应的环境要求 System requirements | Adobe Comm…

基于Spring Boot的水果蔬菜商城系统

一、系统概述 该系统主要适用于实体店的线上销售&#xff0c;旨在打造线上线下一体化的销售模式&#xff0c;带动水果蔬菜的销售量&#xff0c;提高店铺的销售额。系统前台主要面向用户&#xff0c;提供登录注册、首页展示、分类搜索、购物车、地址信息、个人信息、订单信息等…

Redis 常用配置项说明

目录 一&#xff1a;Redis 基础配置二&#xff1a;Redis 数据持久化1、RDB 机制&#xff08;全备份&#xff09;2、AOF 机制&#xff08;增量备份&#xff09;三&#xff1a; Redis 调优配置项 一&#xff1a;Redis 基础配置 # redis工作模式 # no&#xff1a;其它主机可以访…

【软件开发】做出技术决策

文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…

基于Spring Boot的社区药房系统

一、系统背景与目的 随着医疗改革的深入和社区医疗服务的不断完善&#xff0c;社区药房在居民健康保障中扮演着越来越重要的角色。然而&#xff0c;传统的药房管理方式存在着库存管理混乱、药品销售不透明、客户信息管理不规范等问题。为了解决这些问题&#xff0c;基于Spring…

zookeeper基础命令详解

zookeeper基础命令详解目录 文章目录 zookeeper基础命令详解目录一、列出所有基础命令 一、列出所有基础命令 先启动一个zookeeper客户端连接zookeeper&#xff0c;如果还没有启动zookeeper集群的参考本文启动之后再做后续操作。 https://blog.csdn.net/weixin_42924400/artic…