1. 题目来源
在做Java竞赛的编程题中,有一题要求实现一个Person类,要求能够放入到Set集合中,Person类要求有两个属性姓名和年龄。
2. 题目解析
首先复习一下基础知识,在Java中
a.equals(b)为true,则a和b的HashCode一定相等
Java中的散列表采用HashCode计算在数组中的位置,由于我们需要重写equals方法,所以必须重写hashcode()方法,这样才能写出符合题目要求的代码。Object类中的equals方法判断的是对象的引用是否相同,我们这里需要改成判断是否是Person类的对象,然后判断姓名和年龄是否相等。
3. 参考代码
Person类
public class Person {
private String name;
private int age;
public Person(String name, int