嗨,我是 java 新手,因为我知道 set 集合不会重复,并且当集合中已经存在元素时,它的 contains 方法应该返回 true。我正在尝试在程序下运行,但我得到了意想不到的结果。
public class UserDefinedName {
private final String first, last;
public UserDefinedName(String first, String last) {
this.first = first;
this.last = last;
}
public boolean equals(Object o) {
if (!(o instanceof UserDefinedName))
return false;
UserDefinedName n = (UserDefinedName) o;
return n.first.equals(first) && n.last.equals(last);
}
public static void main(String[] args) {
Set<UserDefinedName> s = new HashSet<UserDefinedName>();
s.add(new UserDefinedName("Carballo", "Videl"));
System.out.println(s.contains(new UserDefinedName("Carballo", "Videl")));
}
}
我期待输出true但程序打印false。我做错了什么?