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