Java Object hashCode() メソッド
Object hashCode() メソッドは、オブジェクトのハッシュ値を取得するために使用されます。
構文
object.hashCode()
パラメータ
无 。
戻り値
オブジェクトのハッシュ値を返します。これは整数で、ハッシュテーブル内の位置を表します。
例
次の例は、hashCode() メソッドの使用法を示しています:
例
class サンプルTest {
public static void main(String[] args) {
//Object での hashCode() の使用
Object obj1 = new Object();
System.out.println(obj1.hashCode());
Object obj2 = new Object();
System.out.println(obj2.hashCode());
Object obj3 = new Object();
System.out.println(obj3.hashCode());
}
}
上記のプログラムの実行結果は次のとおりです:
225534817 1878246837 929338653
String クラスと ArrayList クラスは hashCode() メソッドを使用します。String クラスと ArrayList クラスはどちらも Object を継承しているため、hashCode() メソッドを直接使用できます:
例
import java.util.ArrayList;
class サンプルTest {
public static void main(String[] args) {
//String での hashCode() の使用
String str = new String();
System.out.println(str.hashCode()); // 0
//ArrayList での hashCode() の使用
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.hashCode()); // 1
}
}
上記のプログラムの実行結果は次のとおりです:
0 1
次の例は、2つのオブジェクトが等しい場合、それらのハッシュ値も等しいことを示しています:
例
class サンプルTest {
public static void main(String[] args) {
//Object での hashCode() の使用
Object obj1 = new Object();
//obj1 を obj2 に代入
Object obj2 = obj1;
//2つのオブジェクトが等しいかどうかを判定
System.out.println(obj1.equals(obj2)); // true
//obj1 と obj2 のハッシュ値を取得
System.out.println(obj1.hashCode()); // 225534817
System.out.println(obj2.hashCode()); // 225534817
}
}
上記のプログラムの実行結果は次のとおりです:
true 225534817 225534817
その他の拡張
Java Object クラス