Java の LocalDate の hashCode メソッド

JavaBeginner
オンラインで実践に進む

はじめに

hashCode() メソッドは、オブジェクトを識別するために使用できる一意の整数値を生成するために呼び出されます。Java では、hashCode() メソッドは LocalDate オブジェクトのハッシュコードを取得するために使用されます。

main メソッドを持つ Java クラスを作成する

次のコマンドを使用して、~/project ディレクトリに Java クラス HashCodeDemo.java を作成します。

cd ~/project
touch HashCodeDemo.java

LocalDate クラスをインポートする

HashCodeDemo.java ファイルに次のコードを追加することで、LocalDate クラスをインポートします。

import java.time.LocalDate;

LocalDate オブジェクトのハッシュコードを求める

of() メソッドを使用して LocalDate の新しいオブジェクトを作成し、年、月、日を設定します。

LocalDate date = LocalDate.of(2022, 1, 1);

次に、hashCode() メソッドを使用して日付オブジェクトのハッシュコードを求めます。

int hashCode = date.hashCode();

main() メソッドに次のコードを追加します。

public static void main(String[] args) {
    LocalDate date = LocalDate.of(2022, 1, 1);
    int hashCode = date.hashCode();
    System.out.println("Date: " + date);
    System.out.println("HashCode: " + hashCode);
}

上記のコードでは、println() メソッドを使用して日付オブジェクトとハッシュコードを出力しています。

現在の日付のハッシュコードを求める

now() メソッドを使用して LocalDate の新しいオブジェクトを作成し、現在の日付を取得します。

LocalDate currentDate = LocalDate.now();

次に、hashCode() メソッドを使用して現在の日付オブジェクトのハッシュコードを求めます。

int hashCode = currentDate.hashCode();

main() メソッドに次のコードを追加します。

public static void main(String[] args) {
    LocalDate currentDate = LocalDate.now();
    int hashCode = currentDate.hashCode();
    System.out.println("Current Date: " + currentDate);
    System.out.println("HashCode: " + hashCode);
}

上記のコードでは、現在の日付オブジェクトとそのハッシュコードを出力しています。

Java コードをコンパイルして実行する

次のコマンドを使用して、HashCodeDemo.java ファイルをコンパイルします。

javac HashCodeDemo.java

次のコマンドを使用して、コンパイル済みの HashCodeDemo クラスを実行します。

java HashCodeDemo

出力を調べる

クラスを実行した後、ターミナルの出力を確認します。最初のコード スニペットの出力は次のようになります。

Date: 2022-01-01
HashCode: -1176545808

2 番目のコード スニペットの出力は次のようになります。

Current Date: 2022-06-05
HashCode: -2076859288

同じ日付でも、ハッシュコードは毎回異なります。

まとめ

この実験では、Java の LocalDate クラスで hashCode() メソッドをどのように使用するかを学びました。hashCode() メソッドを使用することで、日付オブジェクトを識別するために使用できる一意の整数値を取得できます。特定の日付の日付オブジェクトと現在の日付の日付オブジェクトを 2 つ作成し、その後 hashCode() メソッドを使用して両方のオブジェクトのハッシュコードを求めました。最後に、ターミナルで Java コードをコンパイルして実行しました。