![](/img/trans.png)
[英]LinkedHashSet: hashCode() and equals() match, but contains() doesn't
[英]LinkedHashSet on objects without overridden hashCode() and equals()
我有以下對象集合:
Set<MyClass> test = new LinkedHashSet<MyClass>();
但是MyClass
不會覆蓋hashcode
和equals
方法。
即使MyClass不覆蓋hashCode
和equals
方法,上述集合也只能具有唯一對象嗎?
equals
的默認實現是檢查身份(即,使用==
運算符)。 您的LinkedHashSet
(或其他任何HashSet
)將包含唯一對象,因為您將無法兩次添加同一對象。 但是,如果您以完全相同的方式創建兩個實例(例如,將相同的參數傳遞給構造函數),則您的集合將仍然包含兩個實例,因為它們不equals
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.