<分区>
有两个对象:
private class Monkey{
String name;
public Monkey(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
return name.equals(((Monkey) obj).name);
}
}
@Test
public void contain(){
Monkey monkey1 = new Monkey("Jon");
Monkey monkey2 = new Monkey("Jon");
java.util.Set<Monkey> monkeySet = new HashSet<>();
monkeySet.add(monkey1);
System.out.println(monkeySet.contains(monkey2));
// false
monkeySet.add(monkey2);
System.out.println(monkeySet.size());
// 2
}
HashSet,认为monkey1和monkey2不是同一个对象。但是在我的项目中,如果 monkey1.name == monkey2.name
,那么它们应该相同。
我该怎么做才能让 HashSet 认为 monkey1 和 monkey2 相同?