對我來說使用一套很方便。我喜歡我如何「添加」(「刪除」)一個元素到(從)集。檢查給定元素是否在集合中也很方便。我可以有一套包含相同的元素?
唯一的問題,我發現我不能添加一個新的元素到一個集合,如果集合已經有這樣一個元素。是否有可能包含幾個相同元素的「集合」?
對我來說使用一套很方便。我喜歡我如何「添加」(「刪除」)一個元素到(從)集。檢查給定元素是否在集合中也很方便。我可以有一套包含相同的元素?
唯一的問題,我發現我不能添加一個新的元素到一個集合,如果集合已經有這樣一個元素。是否有可能包含幾個相同元素的「集合」?
您必須使用MultiSet或HashMap,您可以在其中保存元素的數量。
p.s.與HashMap的你還在做添加/帶O刪除(log n)的操作
http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Multiset.html
MultiSet看起來相當有用 - 無法計算我編寫代碼來構建Map
,如果你想重複一個集可能不是集合你的最佳選擇。集,by definition,不允許重複:
一個集合,其中不包含重複的元素。更正式地說,集合包含沒有一對元素e1和e2,使得
e1.equals(e2)
和至多一個空元素。正如其名稱所暗示的那樣,該界面模擬數學集抽象。
除非你有真正需要使用一組(在這種情況下,你可以使用一個多重的@Frostman上面描述)複雜的使用情況下,你可能會更好只使用一個List。
如果元素相同,則不需要多次存儲元素。如果您想跟蹤每個元素的實例數量,最好使用Map。
A Set
按定義不能有重複的元素。 「重複」由元素的相等性定義(請參閱其equals
和hashCode
方法)。如果您需要重複項,請使用允許重複項的Collection
,如ArrayList
。
爲什麼你想要有相同的元素? – 2010-03-28 13:30:38