如果你重载了equals,比如说是基于对象的内容实现的,而保留hashCode的实现不变,那么很可能某两个对象明明是“相等”,而hashCode却不一样. 这样,当你用其中的一个作为键保存到hashMap.hasoTable或hashSet中,再以“相等的”找另一个作为键值去查找他们的时候,则根本找不到. 使用HashMap,如果key是自定义的类,就必须重写hashcode()和equals(). 而对于每一个对象,通过其hashCode()方法可为其生成一个整形值(散列码),该整型值被处理后…