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