Java呼び出しHashMapのsetメソッド
3817 ワード
HashMapメソッドを呼び出すにはequalメソッドとhashCodeメソッドを書き換える必要がありますHashMapメソッドはhashCodeメソッドを使用して格納位置を判断します.hashCodeメソッドを書き直さないと、2つの等しい変数がmapに格納されても2つの値が表示されます.例えばPersonクラスでは,同名の人が同一人物であると仮定し,mapを用いる場合,2人の人名が等しいか否かを判断して格納する必要がある.hashCodeメソッドの書き換え:
@Override
public int hashCode(){
int result = 17;
result = 37 * result + name.hashCode();
return result;
}
equalメソッドの書き換え: @Override
public boolean equals(Object obj) {
if(this == obj)
return true;
if(obj == null)
return false;
if(obj instanceof Person) {
Person other = (Person) obj;
if(other.getName().equals(this.getName()))
return true;
else
return false;
}
return false;
}