Почему при удалении из мап, в цикле for each возникает ConcurrentModificationException
for(Map.Entry<String, Integer> pair : map.entrySet()){
                    if(pair.getValue().equals(a)){
                        map.remove(pair.getKey());
там же итератор неявно используется, а значит проблем не должно быть?