ホームページ >Java >&#&チュートリアル >Javaのハッシュ値とは何ですか

Javaのハッシュ値とは何ですか

little bottle
little bottleオリジナル
2019-05-21 17:27:5811284ブラウズ

Javaのハッシュ値とは何ですか

ハッシュ値 (ハッシュコード) は、一意のエンコーディング、要約値などとして理解できます。特定の実装は、Java で 2 つの変数かどうかを識別するために使用できるメモリ アドレスである可能性があります。実際には同じオブジェクトです。同じオブジェクトの場合、この時点の値は等しい必要がありますが、異なるオブジェクトが同じ値を持つこともできます。一緒にそれについてもっと学びましょう。

異なるクラスのハッシュ値 (ハッシュコード):

1. オブジェクト クラスのハッシュコード: オブジェクトのメモリ アドレスの処理済み構造を返します。それらはすべて異なるため、ハッシュコードも異なります。

2 つのオブジェクトが完全に相対的であるためには、それらのオブジェクトのハッシュ値が同じである必要があります。比較equal()

PS1: どのクラスもObjectクラスの間接サブクラスであるため、メソッドpublic int hashCode()を継承します。このメソッドによって返される値は通常、整数として実装されるように変換されます。これにより、各オブジェクトのハッシュ コード値が異なることが保証されます。

PS2: ここでのアドレスは、実際の物理メモリ アドレスではなく、JVM によって仮想化されたメモリ アドレスを指します。

PS3: ハッシュ値とアドレス値は異なります。ハッシュ値はハッシュ アルゴリズムによるハッシュ化によって取得されますが、アドレス値は物理レベルに関連し、システムによって割り当てられます。つまり、ハッシュ値は論理的な一意性の保証であり、アドレス値は物理的な一意性の保証である。

2. String クラスの HashCode: String クラスに含まれる文字列の内容を元に、特殊なアルゴリズムに従ってハッシュ コードを返します。返されるハッシュコードも同じです。

文字列の内容が等しいかどうかを比較します。 equal()

3 を使用します。 Integer クラス hashCode: 返されるハッシュ コードは、Integer オブジェクトに含まれる整数の値です。

たとえば、Integer i1=new Integer(100)、i1.hashCode の値は 100 です。

同じサイズの 2 つの Integer オブジェクトが同じハッシュ コードを返すことがわかります。

パックされた数値型が等しいかどうかを比較します。等しい()

を使用してください

以上がJavaのハッシュ値とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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