enter image description here У меня есть hashmap, который мне нужно сравнить значения массива String с определенными строками и удалить те, которые равны. В этом случае я знаю String [] с определенным индексом = «RES», но когда я повторяю оператор if (равенство), каждый раз возвращает false. Должен ли я беспокоиться о переопределении .equals() при простом расширении hashmap? Что не так с утверждением if?.Equals() не работает во время итерации hashmap
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', но вы получите' ConcurrentModificationException', если вы используете 'remove (key) 'вместо' iter.remove() '. – Zircon