- 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;
- }
- }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。