問題
以下の Book クラスがあります。このクラスは書籍を表現しています。equals メソッドと hashCode メソッドを適切に実装してください。
import java.util.Objects;
public class Book {
private String title;
private String author;
private int year;
// コンストラクタやゲッター、セッターなどは省略
// equals メソッドと hashCode メソッドを実装
}ヒント
equals メソッドは、2つのオブジェクトが等しいかどうかを判断するために使用されます。以下の基本的なステップに従って equals メソッドを実装できます。
- パラメータとして渡されたオブジェクトが、
thisオブジェクトと同じインスタンスであるかを確認します。 - パラメータが
nullでないことを確認します。 - パラメータが同じクラスのインスタンスであることを確認します。
- インスタンス変数ごとに、その値が等しいかどうかを比較します。
Objects.equals メソッドを使用して、null を考慮した等価性の比較を行うことができます。
hashCode メソッドは、等しいと判断されるオブジェクトに対して同じハッシュコードを生成する必要があります。以下の基本的なステップに従って hashCode メソッドを実装できます。
int型の変数を初期化します(通常はresultと呼ばれます)。- 各インスタンス変数のハッシュコードを計算し、
resultに組み込みます。 - 最終的な
resultを返します。
これらのステップに従って、Book クラスの equals メソッドと hashCode メソッドを実装してみてください。
→解答例


