A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yunzhongzhuhuo 中级黑马   /  2014-3-2 10:17  /  621 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.HashSet;
  2. import java.util.Iterator;

  3. /*HashSet是如何保证数据唯一性?
  4. 是通过元素的两个方法,hashCode和equals来完成。
  5. 如果元素的hashCode值相同,才会判断equals是否为true.
  6. 如果元素的hashCode值不同,不会调用equals.*/
  7. public class HashSetDemo {

  8.         public static void main(String[] args) {
  9.                 // TODO Auto-generated method stub
  10.                 HashSet<Person> hs=new HashSet<Person>();
  11.                
  12.                 hs.add(new Person("al",11));
  13.                 hs.add(new Person("a2",12));
  14.                 hs.add(new Person("a2",12));
  15.                 hs.add(new Person("a3",13));
  16.                 hs.add(new Person("a3",13));
  17.                 hs.add(new Person("a4",14));
  18.                
  19.                 Iterator<Person> it=hs.iterator();
  20.                 while(it.hasNext()){
  21.                         Person p=it.next();
  22.                         sop(p.getName()+"..."+p.getAge());
  23.                 }
  24.         }
  25.        
  26.        
  27.         public static void sop(Object obj)
  28.         {
  29.                 System.out.println(obj);
  30.         }

  31. }

  32. class Person{
  33.        
  34.         private String name;
  35.         private int age;
  36.         public Person(String name, int age) {
  37.                 this.name = name;
  38.                 this.age = age;
  39.         }
  40.         public String getName() {
  41.                 return name;
  42.         }
  43.         public void setName(String name) {
  44.                 this.name = name;
  45.         }
  46.         public int getAge() {
  47.                 return age;
  48.         }
  49.         public void setAge(int age) {
  50.                 this.age = age;
  51.         }
  52.         @Override
  53.         public boolean equals(Object arg0) {
  54.                 // TODO Auto-generated method stub
  55.                 if(!(arg0 instanceof Person))
  56.                         return false;
  57.                 Person p=(Person)arg0;
  58.                 return this.name.equals(p.getName())&&this.age==p.getAge();
  59.         }
  60.         @Override
  61.         public int hashCode() {
  62.                 // TODO Auto-generated method stub
  63.                 return this.name.hashCode()+this.age*12;
  64.         }
  65.        
  66.        
  67. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马