- 往hashSet集合中存入自定义对象
- 姓名和年龄相同为同一个人重复元素
- import java.util.*;
- class HashSetTest
- {
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- public static void main(String [] args)
- {
- HashSet hs =new HashSet();
- hs.add(new Person("a1",11));
- //hs.add(new Person("a2",12));
- hs.add(new Person("a2",12));
- hs.add(new Person("a3",13));
- // hs.add(new Person("a4",14));
-
- Iterator it = hs.iterator();
- while(it.hasNext())
- {
- Person p = (Person)it.next();?
- sop(p.getName()+"..."+p.getAge());
- }
- }
- }
- class Person
- {
- private String name;
- private int age;
- Person(String name, int age)
- {
- this.name= name;
- this.age= age;
- }
- public int hashCode()
- {
- //System.out.println(this.name+"...hashCode");
- return name.hashCode()+age*27; ??
- }
- public boolean equals(Object obj)
- {
- if(!(obj instanceof Person)) ????
- return false;
- Person p =(Person)obj; ??
- //System.out.println(this.name+"...equals..."+p.name);
- return this.name.equals(p.name)&& this.age==p.age; ????
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- }
复制代码
好多不懂得地方!求解释! |
|