首页 > 计算机类 > 等级考试 > 计算机二级 > Web程序设计 > 两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对?并简要说明理由。

两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对?并简要说明理由。

查看答案
正确答案: 答 对 。
如 果 对 象 要 保 存 在 HashSet 或 HashMap 中 , 它 们 的 equals 相 等 , 那 么 , 它 们 的 hashcode 值 就 必 须 相 等 。如果不是要保存在 HashSet 或 HashMap ,则与 hashcode没有什么关系了, 这时候 hashcode不等是可以的, 例如 arrayList 存储的对 象 就 不 用 实 现 hashcode , 当 然 , 我 们 没 有 理 由 不 实 现 , 通 常 都 会 去 实 现 的 。 对 。如 果 对 象 要 保 存 在 HashSet 或 HashMap 中 , 它 们 的 equals 相 等 , 那 么 , 它 们 的 hashcode 值 就 必 须 相 等 。如果不是要保存HashSet 或 HashMap ,则与 hashcode没有什么关系了, 这时候 hashcode不等是可以的, 例如 arrayList 存储的对象就不用实现 hashcode,当然,我们没有理由不实现,通常都会去实现的 。

答案分析:
包含此试题的试卷:
相关的试题
网站内容收集于网络,如有侵犯您的权益,请联系:gl@lm158.com,感谢您的支持
神奇助手题库网