Java - 從HashSet例子看如何實作「物件實質相等性」
之前有篇(https://lucrelin.blogspot.com/2019/03/java_19.html)提到如何在Java中「比較實質相等性」。剛好看到HashSet中如何比較實質相等性的例子。
連結(https://openhome.cc/Gossip/Java/Set.html)中共有3個例子,最需看的是第3個例子:透過hashCode()和equals()去比較兩物件是否相等,如果不相等,才放入HashSet裡。而第2個例子是與第3個例子對照,第2個沒有用上述兩個方法,因而會取到重複的結果。
節錄連結中重點:「事實上不只有
HashSet
,Java中許多要判斷物件是否重複時,都會呼叫hashCode()
與equals()
方法,因此規格書中建議,兩個方法必須同時實作。」
留言
張貼留言