输出在最后
import java.util.HashSet;
import org.junit.Test;
public class test3 {
@Test
public void arrayListTest(){
HashSet set = new HashSet();
// Person1 类已重写Hashcode、equals、toString方法
Person1 p1 =new Person1("A",10);
Person1 p2 =new Person1("B",20);
set.add(p1);
set.add(p2);
System.out.println(set);//输出?
p1.name="C";
System.out.println(set);//输出?
set.remove(p1);
System.out.println(set);//输出?
set.add(new Person1("C",10));
System.out.println(set);//输出?
set.add(new Person1("A",10));
System.out.println(set);//输出?
}
}
class Person1 {
String name;
int age;
@Override
public String toString() {
return "Person1 [name=" + name + ", age=" + age + "]";
}
public Person1(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person1 other = (Person1) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
/*输出:
* [Person1 [name=A, age=10], Person1 [name=B, age=20]]
[Person1 [name=C, age=10], Person1 [name=B, age=20]]
[Person1 [name=C, age=10], Person1 [name=B, age=20]]
[Person1 [name=C, age=10], Person1 [name=C, age=10], Person1 [name=B, age=20]]
[Person1 [name=C, age=10], Person1 [name=A, age=10], Person1 [name=C, age=10], Person1 [name=B, age=20]]
*/