IT科技

當前位置 /首頁/IT科技 > /列表

multiset,java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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。

java multiset

譬如一個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;        }    }

TAG標籤:multiset java #