yohhoyの日記

技術的メモをしていきたい日記

hashCodeメソッドのお手軽実装

Java 7以降ではユーティリティクラスjava.util.Objectsが追加されており*1、ユーザ定義クラスのhashCodeメソッド実装に利用できるヘルパメソッドjava.util.Objects#hash(Object...)を提供する。

class X {
  private int    m1;
  private String m2;
  private Object m3;
  // ...

  @Override public boolean equals(Object obj) {
    // (略)
  }

  @Override public int hashCode() {
    // フィールドを指定してhash値計算
    return java.util.Objects.hash(m1, m2, m3);
  }
}

関連URL

*1:注:JDK1.0からある全クラスのスーパークラス java.lang.Object とは別物。