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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋旭东 中级黑马   /  2013-7-4 08:44  /  864 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main()
{
        Collection c = new HashSet();
        Demo d1 = new Demo(1,2);
        Demo d2 = new Demo(3,4);
        Demo d3 = new Demo(5,6);
        c.add(d1);
        c.add(d2);
        c.add(d3);
        System.out.println(c.size());
        d3.setY(9);
        c.remove(d3);
        System.out.println(c.size());
}

class Demo
{
        int x,y;
        Demo(intx,int y)
        {
                this.x=x;
                this.y=y;
        }
        public void setY(int y)
        (
                this.y=y;
        )
}
为什么两次的打印结果都为3

1 个回复

倒序浏览
d3.setY(9); 这里改变了y的值 相应的该hash值也就变了   c.remove(d3);按hash值寻找的,会找不到d3
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马