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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾浩田 高级黑马   /  2014-9-6 16:18  /  924 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我使用eclipse生成的equals和hashCode后,结果向hashMap中存储成员值相同的键依旧可以存入,很奇怪
public int hashCode() {   //年龄相同的hashCode相同
                        final int prime = 31;
                        int result = 1;
                        result = prime * result + age;
                        result = prime * result + name.hashCode();
                        return result;
                }
                @Override
                public boolean equals(Object obj) {
                        if (this == obj)
                                return true;
                        if (obj == null)
                                return false;
                        if (getClass() != obj.getClass())
                                return false;
                        Student1 other = (Student1) obj;
                        if (age != other.age)
                                return false;
                        if (name == null) {
                                if (other.name != null)
                                        return false;
                        } else if (!name.equals(other.name))
                                return false;
                        return true;    //姓名相同年龄相同返回true
                }

1 个回复

倒序浏览
[code]Map<Integer, String> map = new HashMap<Integer, String>();
键可以不一样,值可以一样。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马