ハッシュ値 (ハッシュコード) は、一意のエンコーディング、要約値などとして理解できます。特定の実装は、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 サイトの他の関連記事を参照してください。