
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;
????????}
????}以上就是小編今天的分享了,希望可以幫助到大家。
