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

© 王飞 中级黑马   /  2012-7-21 18:40  /  1620 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王飞 于 2012-7-21 19:57 编辑

import java.util.HashSet;
import java.util.Iterator;


public class aa {


        public static void main(String[] args) {
                 
                HashSet<Person> hs = new HashSet<Person>();
                hs.add(new Person("java01",10));
                hs.add(new Person("java02",20));
                hs.add(new Person("java03",30));
               
               
                hs.add(new Person("java02",20));//不会添加进去才对的呀
                //帅哥请问:
                HashSet不是无序的吗,添加进去的对象不能是相同的对象,
                那么为什么我添加了2次"java02",20都添加进去了呢?这是为什么啊
                求指教。。。。。。。

                Iterator<Person> it = hs.iterator();
               
                while(it.hasNext())
                {
                        Object obj = it.next();
                        Person p = (Person)obj;
                        System.out.println(p.getName()+"......"+p.getAge());
                         
                }
                 

        }

}


class Person{
        private String name ;
        private int age ;
       
        Person(String name ,int age){
                this.name = name;
                this.age = age;
        }
       
       
        public boolean equals(Object obj) ----此处我把Object对象改了也不对。。。。这是为什么啊  糊涂中,待解救
        {
                if(!(obj instanceof Person))  //判断obj是不是Person这个类型的
                   return false;
               
                Person p = (Person)obj;
               
                return this.name.equals(p.name) && this.age==p.age;
        }
       
        public String getName()
        {
                return this.name;
        }
        public int getAge()
        {
                return this.age;
        }
}

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

3 个回复

正序浏览
个么

在此谢了。。。{:soso_e183:}
这么大热天的请大家吃西瓜{:soso_e156:}

辛苦了
回复 使用道具 举报
HashSet是用hashCode()和equals()来去除重复元素的
你没有重写hashCode()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马