I want use set to remove duplicate object,the UserEntity is like:
public class UserEntity {
String name;
int age;
@Override
public String toString() {
return "UserEntity [name=" + name + ", age=" + age + "]";
}
public UserEntity(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o1) {
UserEntity user=(UserEntity) o1;
return this.age==user.age && user.name.equals(this.name);
}
}
Then I create a set to add two user both called alex who`s age is 20,but there are two user in the set:
UserEntity user1 = new UserEntity("alex", 20);
UserEntity user2 = new UserEntity("alex", 20);
System.out.println(user1.equals(user2));
Set<UserEntity> set=new HashSet<>();
set.add(user1);
set.add(user2);
System.out.println(set.size());
The result is :
true
2
why the set do not remove duplicate object?