先看下面的代码,想下会输出什么?
public class HashSetDemo {
public static void main(String[] args) {
Person p1 = new Person("a", 1);
Person p2 = new Person("a", 1);
HashSet<Person> hashSet = new HashSet<>();
hashSet.add(p1);
hashSet.add(p2);
System.out.println(hashSet.size());
System.out.println(p1.equals(p2));
}
}
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Person p) {
return this.name.equals(p.name) && this.age == p.age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}