日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Google Guava多集

發布時間:2023/12/3 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Google Guava多集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續這次番石榴之旅,我們到達了Multiset 。 我可能不像Multimaps或Bimaps那樣使用它,但是它確實有它的用途。

那么什么是多重集?

也許您可以猜到它是一個可以容納同一對象的多個實例的集合。

這不僅僅是列表嗎?

在Java中,列表和集合之間有兩個基本區別。 列表可以保存同一對象的重復項,并且列表始終是有序的。 集合不能保存重復項,并且不能通過Set接口保證順序。 (某些實現– LinkedHashSet,SortedSet等–當然可以提供有保證的順序!)

因此,多集在列表和集之間占據了某種灰色區域。 允許重復,但不能保證訂單。

這個集合有時也稱為Bag ,實際上,這就是Apache Commons Collections稱之為Mutlisets的東西。

那我要用什么呢?

關于多集的妙處在于,它們可以跟蹤集合中每個特定對象的計數。 因此,您可以使用它們來計數東西。 您是否曾經編寫過如下代碼:

Map<MyClass,Integer> objectCounts = new HashMap<MyClass,Integer>();public void incrementCount(MyClass obj) {Integer count = objectCounts.get(obj);if (count == null) {objectCounts.put(obj,0);} else {objectCounts.put(obj,count++);} }public int getCount(MyClass obj) {Integer count = objectCounts.get(obj);if (count == null) {return 0;} else {return count;} }

有點笨拙? 讓我們看看如何使用多集集:

Multiset<MyClass> myMultiset = HashMultiset.create();MyClass myObject = new MyClass();myMultiset.add(myObject); myMultiset.add(myObject); // add it a second time.System.out.println(myMultiset.count(myObject)); // 2myMultiset.remove(myObject); System.out.println(myMultiset.count(myObject)); // 1

如您所見,這要簡單得多! 甚至可以一次添加/刪除多個對象

Multiset<MyClass> myMultiset = HashMultiset.create();MyClass myObject = new MyClass(); myMultiset.add(myObject,5); // Add 5 copies of myObjectSystem.out.println(myMultiset.count(myObject)); // 5myMultiset.remove(myObject,2); // remove 2 copiesSystem.out.println(myMultiset.count(myObject)); // 3

很有用嗎? 與往常一樣,根據您的要求有幾種可用的實現,我建議您看一下API: http : //docs.guava-libraries.googlecode.com/git-history/v9.0/javadoc/com/google/common /collect/Multiset.html

參考: Tom's編程博客博客中的JCG合作伙伴 Tom Jefferys提供的Google Guava Multisets 。

翻譯自: https://www.javacodegeeks.com/2012/12/google-guava-multisets.html

總結

以上是生活随笔為你收集整理的Google Guava多集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。