黑马程序员技术交流社区

标题: 求解,小弟在自学JAVA基础部分,现在碰到迭代器的问题, [打印本页]

作者: lion_2010509    时间: 2014-12-1 20:58
标题: 求解,小弟在自学JAVA基础部分,现在碰到迭代器的问题,
import java.util.*;

class Person
{
        private String name;
        private int age;
        Person(String name, int age)
        {
                this.name = name;
                this.age = age;
        }
        public int hashCode()
        {
                System.out.println(this.name+"....hashcode");
                return name.hashCode()+age;
        }
        public boolean equals(Object obj)
        {
                if(!(obj instanceof Person))
                        return false;
                Person p =(Person)obj;
                System.out.println(this.name+"....equals.."+p.name);
                return this.name.equals(p.name)&&this.age==p.age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}
class HashSetDemo1
{
        public static void main(String[] args)
        {
                HashSet hs = new HashSet();
                hs.add(new Person("a1",12));
               
               
                hs = getHash(hs);
                sop(hs);
                sop("a1"+hs.contains(new Person("a1",12)));为什么这个SOP在迭代前是true,迭代回来后是false,不明



        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static HashSet getHash(HashSet hs)
        {
                HashSet newHs = new HashSet();

                Iterator it = hs.iterator();
                while(it.hasNext())
                {
                        Person p =(Person)it.next();
                        newHs.add(p.getName()+"::"+p.getAge());

                }
                return newHs;
        }
       
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2