CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第9章 Java 7 の機能を復習する : 問題 9 : java.util.Objects クラス

問題

次のLabeledPointクラスのequalsメソッドとhashCodeメソッドを実装せよ。

public class LabeledPoint {
    private String label;
    private int x;
    private int y;
    ...
}

解答

java.util.Objects クラスを使用する。

equalsメソッド

public boolean equals(Object other) {
    if (!(other instanceof LabeledPoint))
        return false;
    LabeledPoint point = (LabeledPoint)other;
    return Objects.deepEquals(
        new Object[]{      label,       x,       y},
        new Object[]{point.label, point.x, point.y}
    );
}

hashCodeメソッド

public int hashCode() {
    return Objects.hash(label, x, y);
}