亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現一種兼容Set的無序以及List的可重復的數據結構

發布時間:2021-12-18 13:38:11 來源:億速云 閱讀:127 作者:柒染 欄目:云計算

如何實現一種兼容Set的無序以及List的可重復的數據結構,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Java 中,提供了很多常用的數據結構。比如,Map、List、Set 等。但是,在很多時候,我們可能需要統計某個數據出現的次數,這時往往我們的實現代碼可能如下所示:

如何實現一種兼容Set的無序以及List的可重復的數據結構

如果在多個項目,或者是一個項目中,有多個方法,多個功能需要這種統計功能。那么能不能把這種實現,抽取成一個新的數據結構,方便我們在任何地方使用?這就是本文所要說的,一種兼容Set的無序,List的可重復的數據結構:Multiset。

如何實現一種兼容Set的無序以及List的可重復的數據結構  

這個問題,有可能你在面試中也會被問到。因為數據結構,看似最枯燥,但它具有最長久的生命力。

Guava 類庫中提供了一種兼容 Set 的無序,List 的可重復的數據結構 Multiset。Multiset 底層還是數據結構,它就相當于對我們上面的代碼進行了封裝。同時也算是對 Java 中數據結構的一種擴展。

如何實現一種兼容Set的無序以及List的可重復的數據結構

當使用 Multiset 后,我們的代碼就變得非常的簡單了。我們只需存放,而最終的出現次數,重復次數,只需要通過 count 方法就可以獲得,非常的方便。

同時 Multiset 還提供了 setCount(E, int) 方法,可以修改元素 E 在 Multiset 中的次數,但是不能把元素出現的次數修改為負數和大于 Integer.MAX_VALUE 的值,否則將會拋出異常。

Multiset 中的幾個特點,可以總結如下:

  • Multiset 中的元素出現的次數只能為正數,前面說了原因。

    如果E的出現次數為 0,那么 E 將不出現在 multiset中,是不能在 elementSet() 和 entrySet() 的視圖中。

  • multiset.size() 返回這個集合的大小,相當于在 multiset 中元素的出現的總數。

    如果想得到 multiset 中不同元素出現的總數,可以利用 elementSet().size() 來實現。

  • multiset.iterator() 可以遍歷 Multiset 中的所有元素,所以 iteratior 遍歷的次數就等于 multiset.size()。

  • Multiset 支持添加、刪除元素,設置元素出現的次數;

    setCount(elem, 0) 相當于移除 elem 的所有元素。

  • multiset.count(elem) 方法中的 elem 如果沒有出現在 Multiset 中,那么它的返回值永遠都是 0。

關于如何實現一種兼容Set的無序以及List的可重復的數據結構問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漠河县| 七台河市| 连州市| 浮梁县| 安乡县| 东明县| 漯河市| 金坛市| 瑞丽市| 甘泉县| 广饶县| 托克逊县| 兰溪市| 东台市| 通许县| 南召县| 荥阳市| 宜兴市| 调兵山市| 山阴县| 隆德县| 凉山| 英吉沙县| 惠州市| 江都市| 花莲市| 余庆县| 衡阳市| 太康县| 望奎县| 洞口县| 丰原市| 盘锦市| 铜梁县| 宜兰县| 滦平县| 喜德县| 三河市| 遂昌县| 枣庄市| 桓台县|