У меня есть Hashtable в Java и хочу перебирать все значения в таблице и удалять определенную пару "ключ-значение" во время итерации.
Как это можно сделать?
Ответ 1
Вам нужно использовать явный java.util.Iterator для итерации по набору элементов Map, а не для использования расширенного синтаксиса For-loop, доступного на Java 6. В следующем примере выполняется итерация по Map из Integer, String, удаляя любую запись, чей ключ Integer равен нулю или равен 0.
Map<Integer, String> map = ...
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
// Remove entry if key is null or equals 0.
if (entry.getKey() == null || entry.getKey() == 0) {
it.remove();
}
}