equals方法对比的是元素的值,能够hashcode不一样, 可是若是咱们override了本身的equals方法同时也应该重载hashcode方法。假设有obj1和obj2相等, 这时候obj1做为key放入map后,用obj2做为key来获取obj1存入的对象,多是得到为null.由于Map会先用本身的hash方法处理obj2的hashcode,而后根据这个值再去查找。由于obj1和obj2的hashcode不一样,则拿不到obj1存入的值。固然hashcode的重写也要有必定的技巧,不然会影响map的存取效率。 ide