Java重写equals方法
package com.jckb; import java.util.HashSet; public class Test3 { public static void main(String[] args) { m(); } static void m(){ HashSet<Person> p= new HashSet<Person>(); p.add(new Person(12, "tom")); p.add(new Person(12, "tom")); System.out.println(p); System.out.println("--------------------------------------"); boolean b =( new Person(12, "tom")).equals(new Person(12, "tom")); System.out.println(b); } } class Person{ private int age; private String name; public Person(int age, String name) { super(); this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int hashCode() { Person p =(Person) this; return p.getName().hashCode()+p.getName().hashCode(); } @Override public boolean equals(Object obj) { if(obj instanceof Person){ Person p =(Person)obj; return this.name.endsWith(p.name)&&this.age==p.age; } return super.equals(obj); } @Override public String toString() { return name+"---"+age; } }