Objectクラスのequalsメソッドをオーバーライドし、mapクラスのequalsメソッドを実装させる課題に取り組んでいます。APIを参照したところ、「引数で指定されたオブジェクトがマップであり、二つのマップエントリが同じマッピングを表す場合は、trueを返す。」と書いてあるのですが、マップであるかどうかの判別や、マップエントリ(キーと値)を比較するプログラムをどのように組めばよいかわかりません。以下のコードはインターネットで見つけ、手を加えたものですが、正直何をしているのかさえわからない上に、講師にApiに定義されているMapクラスのequalsメソッド通りに作成してほしいと言われてしまいました。
どなたかよろしければ、ご教授願えませんでしょうか?
よろしくお願いいたします。
public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) {//マップの比較? return false; } LocalMap map2 = (LocalMap)obj;//代入 if (count != map2.count) {//要素数の比較 return false; } for (int i = 0; i < count; i++) { Object k = keys[i]; if (!get(k).equals(map2.get(k))) {//? return false; } } return true; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。