equals() && contains()
Java 中常见的比较有equals和hashcode
今天在学习的时候就遇到了一个头疼的问题(菜鸟级的我有大大疑问)
在比较两个对象内的元素时,无论是使用equals还是hashcode都始终得不到我想要的结果。遂百度,记此文
那么这两种方法到底有什么区别呢?
equals()方法是根类 Object 的默认方法,查看 Object 中 equals()的默认实现:
|
|
可以看出没有重写过的 equals()方法和 == 是一样的,都是比较两个对象引用指向的内存地址是否一样判断两个对象是否相等。
也就是说,基本上每次都要Overwrite这个方法
hashCode是JDK根据对象的地址或者字符串或者数字计算该对象的哈希码值的方法。
hashcode 和 equals 两者必须同时重写。
注意在类中,有一些 equals 方法 OverWrite 时必须要传入 Object 类型
|
|