Я знаю, что обычно это большой нет-нет для удаления из списка с помощью java "foreach", и что нужно использовать iterator.remove(). Но безопасно ли удалять(), если я зацикливаюсь на HashMap keySet()? Вот так:
for(String key : map.keySet()) {
Node n = map.get(key).optimize();
if(n == null) {
map.remove(key);
} else {
map.put(key, n);
}
}