gpt4 book ai didi

java - 即使我重写 equals(Object o),HashSet 也不包含我的自定义对象

转载 作者:行者123 更新时间:2023-12-02 17:59:54 25 4
gpt4 key购买 nike

为什么这个程序的输出是false?我期望 true 作为 n 对象使用我正在检查的相同字符串进行初始化。

public class Test {
public static void main(String[] args) {
Name n = new Name("jyoti", "meher");
Set<Name> s = new HashSet();
s.add(n);
System.out.println(s.contains(new Name("jyoti", "meher")));
}
}

class Name {
String name, title;

public Name(String name, String title) {
this.name = name;
this.title = title;
}

public boolean equals(Object o) {
if (!(o instanceof Name)) {

return false;
}
Name n = (Name) o;
return n.name.equals(name) && n.title.equals(title);
}
}

最佳答案

您还必须重写hashCode(),而不仅仅是equals()

关于java - 即使我重写 equals(Object o),HashSet 也不包含我的自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com