Доброго времени суток. Вопрос в следующем, каким образом происходит удаление элементов из коллекции Map. Пытаюсь решить очередную задачу и не могу продвинуться дальше, так как не понимаю по какому принципу происходит удаление из коллекции. Суть в том, чтобы удалить одинаковые элементы из коллекции, сравнение происходит по значению (value). Из лекций 8-го уровня я понял, что "iterator" - это что-то вроде ссылки на нашу коллекцию. Поэтому создал 2 таких ссылки и путем сравнения элементов в коллекции решил удалять элементы на которые ссылается эта ссылка(объект) iterator2. Разъясните, почему я делаю не правильно. Очень хочу понять где я не прав. Спасибо всем кто отзовется. for (Iterator> iterator1 = map.entrySet().iterator(); iterator1.hasNext();){ HashMap.Entry pair1 = iterator1.next(); for (Iterator> iterator2 = map.entrySet().iterator(); iterator2.hasNext();) { HashMap.Entry pair2 = iterator2.next(); if(pair1.getValue().equals(pair2.getValue())){ map.remove(pair2.getKey()); } } } Еще вариант реализации удаления из коллекции Iterator> iterator1 = map.entrySet().iterator(); while(iterator1.hasNext()){ Map.Entry pair1 = iterator1.next(); Iterator> iterator2 = map.entrySet().iterator(); while(iterator2.hasNext()){ Map.Entry pair2 = iterator2.next(); if (pair1.getValue().equals(pair2.getValue())){ iterator2.remove(); } } }