There are two objects:
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
}
With HashSet,it think monkey1 and monkey2 are not same object. But in my project, if monkey1.name == monkey2.name
, then they should be same.
What can I do to make HashSet think monkey1 and monkey2 is same ?