- import java.util.HashSet;
- import java.util.Iterator;
- public class fuxi4_hashset
- {
- public static void main(String[] args)
- {
- /************************* 容器间Hashset、迭代器 *************************************************/
- HashSet<Student> stu = new HashSet<Student>();//去重复,按容器自己的顺序排列
- Student s1 = new Student("tom", 25);
- Student s2 = new Student("jerry", 23);
- Student s3 = new Student("jerry", 23);
- Student s4 = new Student("tom", 22);
- stu.add(s1);
- stu.add(s2);
- stu.add(s3);
- stu.add(s4);
- Iterator itr = stu.iterator();// 创建迭代器
- while(itr.hasNext())
- {
- Student str = (Student) itr.next();
- System.out.println(str);
- }
- }
- /************************* 重写equals方法 *************************************************/
- /**
- * public boolean equals(Object obj)
- {
- System.out.println("asdf");
- if (obj instanceof Student)
- {
- Student s = (Student) obj;
- if (this.name.equals(s.name) && this.age == s.age)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- System.out.println("null");
- return false;
- }
- }
- */
- }
- class Student
- {
- String name;
- int age;
- public Student(String name, int age)
- {
- this.name = name;
- this.age = age;
- }
- @Override
- public String toString()
- {
- return "Student [name=" + name + ", 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;
- Student other = (Student) 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;
- }
- }
本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1186833,如需转载请自行联系原作者