enter image description here私は、文字列配列の値を特定の文字列と比較し、等しいものを削除する必要があるハッシュマップを持っています。この例では、特定のインデックス= "RES"のString []を知っていますが、if(equality)ステートメントを繰り返し実行すると、毎回falseが返されます。単純にhashmapを拡張するときに.equals()をオーバーライドすることについて心配する必要はありますか? if文の何が問題なのですか?.Equals()がハッシュマップを反復処理中に動作しない
public void filter(){
Iterator<Map.Entry<String, String[]>> iter = this.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<String,String[]> entry = iter.next();
String[] current = entry.getValue();
if(current[0].trim().equalsIgnoreCase("RES")){
this.remove(entry.getKey());
}
}
}
は何である 'this.remove()'? –
デバッガを使用すると、current [0]の値を参照してください。文字列の等価性に問題はありません。 –
'if'文自体には何も問題はないようですが、' remove(key) 'の代わりに' iter.remove() 'を使用します。 – Zircon