私はJavaを学ぼうとしています。Eric Roberts のテキスト「The Art and Science of Java」には、フライト予約コンソールをシミュレートするプログラミング課題があります。City クラスを使用して「クラスアップ」したかったのですが、City String だけで十分です。String である1 つのフィールドしかありませんがname
、クラスの使用方法を学ぼうとしています。
とにかく、重複を避けるために、City クラスの equals メソッドをオーバーライドする必要がありました。そのため、hashCode メソッドをオーバーライドする必要がありました。
今、私のHashMap<City,ArrayList<Flight>>
ものは機能していません。特定の値を見つけることができず、重複キーを許可します。
My Cityequals
とhashCode
オーバーライドは次のとおりです。私の HashMap がうまくいかない理由は誰にも分かりますか?
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object that) {
// TODO Auto-generated method stub
if ( this == that ) return true;
if ( !( that instanceof City) ) return false;
City aThat = (City) that;
return (name == aThat.name );
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return name.hashCode();
}