java:放入Set中的对象一定要重写hashCode()和equals()吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:放入Set中的对象一定要重写hashCode()和equals()吗?相关的知识,希望对你有一定的参考价值。

不需要
不过set里面的对象时不能重复的嘛,所以每加入一个对象都会与以存在的对象比较,若已经存在,则后来的就会被丢弃
如果你要自己定义怎么样才算相同对象就重写hashCode()和equals();要不然不需要重写
参考技术A 同意1楼,通常都会覆写这两个方法,主要是为了判断两个对象是否相等的,一个比较完整的类应该覆写toString()、hashCode()、equals()方法. 参考技术B 重写equals之后是比较两个引用对象的值是否相等,所以一般有这方面比较的时候才会去重写它,而在重写equals的时候,建议你也重写hashCode,因为为了保证散列码的统一······不过一般的类都提倡重写这2类······ 参考技术C 不一定要重写,他会调用默认的equal确定是否是重复值
如果你的对象指定为id相同则重复,那你就需要重写了

以上是关于java:放入Set中的对象一定要重写hashCode()和equals()吗?的主要内容,如果未能解决你的问题,请参考以下文章

Java中的equals和hashCode方法

java 基础 --Collection(Set)

Java中的equals和hashCode方法详解

为啥重写equals方法,一定要重写HashCode方法?

java-------集合

equals(),hashcode()方法详解