![](/img/trans.png)
[英]What's the right Java generic for a collection of elements with unique addressable indices?
[英]java collection of unique elements
我有一個myObject的Collection coll。 只有在集合中沒有這樣的元素時,我才想添加一個元素。
我已經覆蓋了myObject的equals方法。 它檢查其20個屬性的相等性。
但是在集合的情況下,我想基於這些屬性中的一個來進行相等性檢查(以及因此添加)。
也許我的架構是有缺陷的,我不應該有兩個equals的定義,而應該有兩個不同的對象。
但是,如果沒有太多的重構,是否有可能從這里實現我想要的東西? 也就是說,我想要某種Set集合,在那里我可以告訴如何進行比較檢查。 這與Collection.sort()方法類似,您可以在其中提供比較器以檢查比較。
您正在尋找Set
和其中一個實現。
您不能使用現有容器來強制執行唯一性,因為它們都希望使用equals
。
如果它只是一個屬性,則可以使用Map,將該屬性作為鍵。 這將允許該屬性的每個值只有一個條目。
equals
和hashCode
旨在與集合一起使用。 你應該改變你的設計。 也許打電話給你自己的平等(你現在擁有的)別的東西。 也許不要將這些東西直接放入集合中,而是包裝到某種適配器中。
通過使用TreeSet(比較器比較器),您不需要依賴'equals / hashCode'實現。
同樣,如果您的集合是一個列表,您可以使用比較器Collections.sort(列表列表,比較器c)對其進行排序;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.