第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); }