黑马程序员技术交流社区
标题:
Set集合的 问题
[打印本页]
作者:
Teresa
时间:
2015-4-12 22:38
标题:
Set集合的 问题
重写了equals与hashcode方法之后,equals的返回值一定是true么。
作者:
星之钥匙
时间:
2015-4-12 22:44
这是我的一个学生类的对象的重写方法,可以给你参考一下
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
复制代码
作者:
怀念子龙
时间:
2015-4-13 09:00
重写就是自己写方法啊。按照自己的想法写,你甚至写成猫和狗相等都可以,虽然这样没什么意义。
作者:
黑色救护车
时间:
2015-4-13 11:25
不一定的。Set集合调用equals方法的前提是hashCode返回了0;那么就看equals的返回值,如果true,说明两个对象完全相同;返回false,说明两个对象还是不同的。
作者:
杨大萌
时间:
2015-4-13 11:34
equals方法返回值最好是int类型,表示,大于,等于,还是小于,用于排序的。
作者:
侯永凯
时间:
2015-4-13 21:42
重写的方法中来确定你要满足的条件
作者:
lf027
时间:
2015-4-13 21:54
不一定的。Set集合调用equals方法的前提是hashCode返回了0;那么就看equals的返回值,如果true,说明两个对象完全相同;返回false,说明两个对象还是不同的。
这个解答挺好的
作者:
wym1994
时间:
2015-4-13 22:14
Hashcode把对象的所有成员变量值相加。如果是基本类型,就加值。如果是引用类型,就加哈希值。比较的是哈希值 当哈希值相同的情况下 允许内容不同 所以重写equals方法以后 比较2个的值 仍然有可能不相同 例如如下例子就是哈希值相同而内容不同的例子:'GA8Mfaaa', 'e4R5Blaa', 'Y92RLlaa', 'sCvEytaa', 'ydDspvaa','ofLCCCaa', 'uemC0Daa', 'CbgFKKaa', 'd0XRbNaa', 'hUzU9Saa'
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2