From 9bb87f86f78418c51f5081d69ada5124b5171e9f Mon Sep 17 00:00:00 2001 From: Wenpeng Date: Wed, 26 Aug 2020 10:56:31 +0800 Subject: [PATCH] =?UTF-8?q?fix=20typo=20"equals=EF=BC=88=EF=BC=89"=20to=20?= =?UTF-8?q?"equals()"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/Java基础知识.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/Java基础知识.md b/docs/java/Java基础知识.md index 35d647dc..e72d8598 100644 --- a/docs/java/Java基础知识.md +++ b/docs/java/Java基础知识.md @@ -467,7 +467,7 @@ public native int hashCode(); 我们以“`HashSet` 如何检查重复”为例子来说明为什么要有 hashCode? -当你把对象加入 `HashSet` 时,`HashSet` 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的 hashcode,`HashSet` 会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 equals()方法来检查 hashcode 相等的对象是否真的相同。如果两者相同,`HashSet` 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。(摘自我的 Java 启蒙书《Head First Java》第二版)。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。 +当你把对象加入 `HashSet` 时,`HashSet` 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的 hashcode,`HashSet` 会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 `equals()` 方法来检查 hashcode 相等的对象是否真的相同。如果两者相同,`HashSet` 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。(摘自我的 Java 启蒙书《Head First Java》第二版)。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。 **3)为什么重写 `equals` 时必须重写 `hashCode` 方法?**