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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 草上飞 中级黑马   /  2012-10-28 15:37  /  1121 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
/*
|set--:元素是无序的(插入和取出的顺序不一样),元素不可以重复
       |--hashset :底层数据结构哈希表
       hashset 是如何保证元素师唯一的呢
    是通过元素的两个方法,hashCode和equals来完成的
    如果元素hashCode值相同,才会判断equals是否true
    如果元素hashcode不同,不会的用equals
    |--Treeset:
    set集合和collection是一致的
    */
class Person
{
   private String name;
   private int age;
     Person(String name,int age)
   {
     this.name=name;
     this.age=age;
     }
     public int hashCode()//判断元素唯一性必须要重写hashCode值方法
        {
               // System.out.println(this.name+"===");
     return name.hashCode()+age*35;
     }
      public boolean equals(Object obj)//这里必须要重写equals方法
     {
      if(!(obj instanceof Person))
    return false;
            Person p=(Person)obj;
   //System.out.println(this.name+"--99999-"+p.name);
   return this.name.equals(p.name)&&this.age==p.age;
   
   }
   public String getName()
   {
    return name;
   
   }
   public int getAge()
   {
  return age;
   }
  
}
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("li1",23));
  hs.add(new Person("li2",24));
  hs.add(new Person("li2",24));
  hs.add(new Person("li3",25));
  hs.add(new Person("li3",25));
  hs.add(new Person("li4",26));
  for (Iterator it=hs.iterator();it.hasNext() ; )
  {
   Object obj=it.next();
   Person p=(Person)obj;
   sop(p.getName()+"---"+p.getAge());
  }
  
}
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 神马都是浮云

查看全部评分

0 个回复

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