
java multiset是什么,让我们一起了解一下?
multiset就是在set中不去除重复的元素,Java中Guava提供了一个新集合类型Multiset,可以多次添加相等的元素,且和元素顺序无关,Multiset继承于JDK的Collection接口,而不是Set接口。
Java中Multiset和set有什么区别?
它可以对相同元素做一个计数的功能,普通的Set就像:[car,ship,bike],而Multiset会是这样:[car x 2,ship x 6,bike x 3]有这样有用的功能,就是跟踪每种对象的数量,所以你可以用来进行数字统计,每存放一个元素,那么该元素的count就加1。

譬如一个List里面有各种字符串,然后你要统计每个字符串List里面出现的次数,这个用Multiset就可以快速实现。
实战操作,示例代码如下:
static class Item implements Comparable{
int a;
public boolean delete;
@Override
public String toString() {
return "Item [a=" + a + "]";
}
public Item(int a) {
super();
this.a = a;
}
public Item(int a, boolean delete) {
super();
this.a = a;
this.delete = delete;
}
@Override
public int compareTo(Item o) {//remove方法也会调用这里的方法,可以在remove的时候调试进来看看如何
if(a>o.a)
return 1;
if(a==o.a&&(delete||o.delete))//注意这里的delete,是this.delete为判断的依据。o.delete指的是set中的,这样写万无一失吧
return 0;
return -1;
}
}以上就是小编今天的分享了,希望可以帮助到大家。
