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
实现,例如 HashMultiset
、TreeMultiset
和 LinkedHashMultiset
,你可以根据需要选择适合的实现。