Multiset是Java中的一个集合,类似于Set结构,它有助于实现顺序无关的相等性。但是唯一的区别是多集还可以包含重复元素。
如果将多集可视化为列表,则情况并非如此,因为列表不能保存重复值,并且列表元素始终处于特定顺序。
可以将多集视为位于列表和集合结构之间的某个集合。在多集中,允许重复值,并且不能保证多集中的元素会以特定顺序出现。Multiset也称为“包”。
它也可以看作是包含元素及其频率的映射。
在多集中,特定元素的出现总数也称为该特定元素的“计数”。
multiset.count(element)是一个函数,当元素不在多集中时总是返回0。
除非在实现中指定,否则Multiset使用Obejct.equals(java.lang.Object)来检查两个实例是否被视为相同。
多重集可用于添加元素,删除元素或明确指定其频率。
setCount(element,0)函数基本上建议特定元素的频率/计数为0,即,将其删除或从多集中删除所有出现的元素。
多重集始终具有频率为正的元素。多重集中的任何元素都不能具有负频率。这意味着多集中不存在计数为负或0的元素。当调用elementSet()
或时,它们将不可见entrySet()
。
multiset.size()可用于获取集合的大小,该大小与多重集中所有元素的计数总和相同。
要查找多重集中不同元素的数量,请使用elementSet()
.size()。
以下是一个例子-
import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; Multiset<String> my_multiset = HashMultiset.create(); my_multiset.add("Sample"); my_multiset.add("Sample"); System.out.println(my_multiset);
输出结果
[Sample x 2]
定义了类型字符串的多集集合,并使用“添加”功能将元素添加到其中。然后将元素打印在控制台上。