Guava 库中的 `Multiset` 是一个允许元素重复的集合

news/2024/12/21 18:36:30/

Guava 库中的 Multiset 是一个允许元素重复的集合。它继承自 Collection 接口,提供了额外的方法来处理元素的计数。以下是一些使用 Guava Multiset 的基本代码示例:

引入 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.Multiset;
import com.google.common.collect.HashMultiset;public class MultisetExample {public static void main(String[] args) {// 创建一个MultisetMultiset<String> multiset = HashMultiset.create();// 添加元素multiset.add("apple");multiset.add("banana");multiset.add("apple"); // 允许重复// 打印MultisetSystem.out.println(multiset); // 输出:[apple x2, banana x1]}
}

元素计数和查询

        // 查询元素计数System.out.println(multiset.count("apple")); // 输出:2System.out.println(multiset.count("banana")); // 输出:1// 检查Multiset是否包含某个元素System.out.println(multiset.contains("apple")); // 输出:trueSystem.out.println(multiset.contains("cherry")); // 输出:false

删除元素

        // 删除一个元素multiset.remove("apple");System.out.println(multiset); // 输出:[apple x1, banana x1]// 删除一个元素的特定数量multiset.remove("apple", 2); // 尝试删除两个"apple",但只剩下一个,所以只删除一个System.out.println(multiset); // 输出:[banana x1]// 完全移除一个元素multiset.removeAll("banana");System.out.println(multiset); // 输出:[]

元素迭代

        // 重新添加元素以进行迭代演示multiset.add("apple");multiset.add("banana");// 迭代Multisetfor (String fruit : multiset) {System.out.println(fruit + " appears " + multiset.count(fruit) + " times");}// 输出:// apple appears 1 times// banana appears 1 times

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


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

相关文章

idea无法识别文件,如何把floder文件恢复成model

前景&#xff1a; 昨天&#xff0c;我在之前的A1214模块包下新增了一个demo类&#xff0c;然后又新建了一个A1216模块&#xff0c;写了算法题&#xff0c;后面打算用git提交&#xff0c;发现之前的A1214模块下的demo类和新建的模块源文件都已经被追踪了&#xff0c;都是绿色的&…

STM32单片机芯片与内部33 ADC 单通道连续DMA

目录 一、ADC DMA配置——标准库 1、ADC配置 2、DMA配置 二、ADC DMA配置——HAL库 1、ADC配置 2、DMA配置 三、用户侧 1、DMA开关 &#xff08;1&#xff09;、标准库 &#xff08;2&#xff09;、HAL库 2、DMA乒乓 &#xff08;1&#xff09;、标准库 &#xff…

ts 内置类型与类型断言

ts 内置类型与类型断言 // 变量 函数不显式声明类型 会被推导为any // unknow和any 区别 any是代表自己可以是任何类型 unknown代表目前未确定是什么类型 但是将来会有一个确定类型 //一个 unknown 类型的变量可以再次赋值为任意其它类型&#xff0c;但只能赋值给 any 与 unkn…

5G 模组 RG200U常用AT命令

5G 模组 RG200 U常用AT命令 5G 模组 RG200 U常用AT命令 ATQCFG“usbnet”,3 ATQICSGP2,1,“”,“cmnet”,“”,1 APN ATQNETDEVCTL2,3,1 ATCFUN0 将 UE 设置为最小功能模式 ATCFUN1 将 UE 设置为全功能模式 ATQENG“servingcell” 查询服务小区信息 ATQNETDEVCTL1,3,1 拨…

基于Java的秦皇岛旅游景点管理系统

一、系统背景与目的 秦皇岛&#xff0c;作为中国著名的旅游城市&#xff0c;拥有丰富的自然景观和人文历史遗迹。为了提升秦皇岛旅游景点的管理效率和服务质量&#xff0c;基于Java的旅游景点管理系统应运而生。该系统旨在通过信息化手段&#xff0c;实现旅游景点的智能化管理…

咸虾米壁纸微信小程序下载图片到相册saveImageToPhotosAlbum功能修改

当我将咸虾米壁纸这个项目进行重构的时候&#xff0c;想要将图片资源变得小一点&#xff0c;所以在上传图片的时候均采用了webp格式的&#xff0c;这样就导致再预览页面下载图片的时候出错了&#xff0c;之前使用的是uni.getImageInfo()这个API&#xff0c;该API不支持webp图片…

VSCode如何修改默认扩展路径和用户文件夹目录到D盘

在使用Visual Studio Code&#xff08;VSCode&#xff09;时&#xff0c;随着安装的扩展和用户数据的增多&#xff0c;C盘的空间可能会逐渐紧张。为了优化存储管理&#xff0c;将VSCode的默认扩展路径和用户文件夹目录迁移到D盘是一个有效的解决方案。以下是详细的操作步骤&…

微软 Phi-4:小型模型的推理能力大突破

在人工智能领域&#xff0c;语言模型的发展日新月异。微软作为行业的重要参与者&#xff0c;一直致力于推动语言模型技术的进步。近日&#xff0c;微软推出了最新的小型语言模型 Phi-4&#xff0c;这款模型以其卓越的复杂推理能力和在数学领域的出色表现&#xff0c;引起了广泛…