读书人

为啥覆盖了equals方法一定要覆盖hashc

发布时间: 2012-09-16 17:33:16 作者: rapoo

为什么覆盖了equals方法一定要覆盖hashcode方法?
1 测试代码

public class HashMapTest {public static class CC {private String cc;public String getCc() {return cc;}public void setCc(String cc) {this.cc = cc;}public CC(String cc) {this.cc = cc;}@Overridepublic boolean equals(Object arg0) {CC testC = (CC) arg0;return cc.equals(testC.getCc());}@Overridepublic int hashCode() {return cc.hashCode();}}public static void main(String[] args) {Map<CC,String> map = new HashMap<CC,String>();map.put(new CC("aa"), "bb");System.out.println(map.get(new CC("aa")));}} 


就可以正确获得结果
bb

读书人网 >编程

热点推荐