public class Text1
{
public static void main(String[] args)
{
Set<Text2> t = new HashSet<Text2>();
t.add(new Text2("诸葛亮",27));
t.add(new Text2("庞统",40));
t.add(new Text2("诸葛亮",27));
//如果方法重写成功了,只打印出庞统和诸葛亮的对象,重复的不会打印
System.out.println(t);
}
}
class Text2
{
private String name;
private int age;
Text2(String name,int age)
{
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Text2 [age=" + age + ", name=" + name + "]";
}
//重写equals方法
public boolean equals(Object obj)
{
//判断传进来的是不是Text2的实例
if(!(obj instanceof Text2))
{
return false;
}
//把传递过来的对象转换成子类
Text2 text = (Text2)obj;
//如果两个Text2类的所有属性都相等,认为是相同的对象
if(this.name !=null&&text.name!=null&&
this.name.equals(text.name)&&this.age==text.age)
return true;
else
return false;
}
//必须要重写hashCode方法
public int hashCode()
{
return 1;
}
}