黑马程序员技术交流社区

标题: 关于equals和hashCode的一个奇怪的现象 [打印本页]

作者: 贾浩田    时间: 2014-9-6 16:18
标题: 关于equals和hashCode的一个奇怪的现象
我使用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
                }
作者: 旭辉lin    时间: 2014-9-6 21:07
[code]Map<Integer, String> map = new HashMap<Integer, String>();
键可以不一样,值可以一样。




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