ホームページ  >  記事  >  Java  >  equals と hashCode の使用法の概要

equals と hashCode の使用法の概要

PHP中文网
PHP中文网オリジナル
2017-06-20 16:50:321393ブラウズ

equals

equals メソッドは、デフォルトでは、2 つのオブジェクトのメモリ アドレスを比較して、オブジェクトの実際の内容を比較します。同じクラスのオブジェクトの同じ属性。

2つのハッシュコード

1. ハッシュテーブル

ハッシュテーブルは配列です。同じ一方向リンクリスト内のノードは、同じ属性。属性値 は配列の添字であり、この同じ属性は hashCode ハッシュ値と呼ばれます。

2. hashCodeのハッシュ値の役割と意義

hashCodeを生成する前に、検索集合を一つ一つ比較する必要があり、クエリ効率が低い。コレクション内の同じ属性値を持つ要素が特定の属性に基づいてグループに分割されている場合、それらは一元的に格納されます。クエリを実行すると、まずクエリ オブジェクトの属性の値が取得され、対応するグループが取得されます。値に基づいて検索され、クエリの範囲が大幅に縮小されます。これが hashCode の背景です。 2 つのオブジェクトの hashCode は等しいですが、これは 2 つのオブジェクトが同じグループにあることを示すだけであり、2 つのオブジェクトのメモリ アドレスを比較したり、

equals メソッドを使用して特定のコンテンツを検証し、2 つのオブジェクトが同じかどうかを判断します。

上記のことから、ハッシュ テーブルでは、同じ 2 つのオブジェクトは同じハッシュ値を持たなければならないことがわかります。

3.hashCode() メソッド

hashCode() メソッドは、デフォルトでは、オブジェクトのメモリ アドレスに基づいて生成されます。 to-one.equalsで確認します

同じ2つのオブジェクトは、ハッシュコードを書き換えることなく、ハッシュテーブルに格納されるときのハッシュ値が同じであることを保証します。 、それらは異なる内容を持つ 2 つのオブジェクトとして扱われ、ハッシュが生成されます。 同じ内容を持つ 2 つの要素がテーブルに表示され、不必要なメモリを占有します。そのため、equals メソッドがオーバーライドされたら、hashCode

メソッドをオーバーライドして、同じオブジェクトは同じ値を持ちます。 3つのアプリケーション

ハッシュ値は主にハッシュテーブルで使用されます。したがって、HashMapまたはHashSetにオブジェクトを格納したい場合は、

です。このクラスを書き直す必要があります。その中の 2 つのメソッド等しいと hashCode により、同じオブジェクトのハッシュ値が同じになります。

以上がequals と hashCode の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。