From 532ff616b13fa81749e53775f070fdd3736d5831 Mon Sep 17 00:00:00 2001 From: GungnirLaevatain Date: Mon, 13 Jan 2020 14:46:18 +0800 Subject: [PATCH] modify item 11 --- docs/notes/11. 重写equals方法时同时也要重写hashcode方法.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notes/11. 重写equals方法时同时也要重写hashcode方法.md b/docs/notes/11. 重写equals方法时同时也要重写hashcode方法.md index cefb5dd..9e8eb8a 100644 --- a/docs/notes/11. 重写equals方法时同时也要重写hashcode方法.md +++ b/docs/notes/11. 重写equals方法时同时也要重写hashcode方法.md @@ -2,7 +2,7 @@   **在每个类中,在重写 equals 方法的时侯,一定要重写 hashcode 方法。** 如果不这样做,你的类违反了 hashCode 的通用约定,这会阻止它在 HashMap 和 HashSet 这样的集合中正常工作。根据 Object 规范,以下时具体约定。 - 1. 当在一个应用程序执行过程中,如果在 equals 方法比较中没有修改任何信息,在一个对象上重复调用 hashCode 方法时,它必须始终返回相同的值。从一个应用程序到另一个应用程序的每一次执行返回的值可以是不一致的。 + 1. 当在一个应用程序执行过程中,如果在 equals 方法比较中没有修改任何信息,在一个对象上重复调用 hashCode 方法时,它必须始终返回相同的值。应用程序在两个对象上获取的结果值可以不相同。 2. 如果两个对象根据 equals(Object) 方法比较是相等的,那么在两个对象上调用 hashCode 就必须产生的结果是相同的整数。 3. 如果两个对象根据 equals(Object) 方法比较并不相等,则不要求在每个对象上调用 hashCode 都必须产生不同的结果。 但是,程序员应该意识到,为不相等的对象生成不同的结果可能会提高散列表(hash tables)的性能。