JavaRush /Blog Java /Random-PL /Kolekcje. Mapa. Usuwać.
oktava
Poziom 23
Санкт-Петербург

Kolekcje. Mapa. Usuwać.

Opublikowano w grupie Random-PL
Dobry dzień. Pytanie brzmi jak usunąć elementy z kolekcji Map . Próbuję rozwiązać kolejny problem i nie mogę ruszyć dalej, bo nie rozumiem na jakiej zasadzie następuje usunięcie ze zbioru. Pomysł jest taki, aby usunąć identyczne elementy z kolekcji, porównanie odbywa się według wartości. Z wykładów na poziomie 8 zrozumiałem, że „iterator” to coś w rodzaju linku do naszej kolekcji. Dlatego stworzyłem 2 takie linki i porównując elementy w kolekcji zdecydowałem się usunąć elementy, do których odnosi się to łącze (obiekt) iterator2. Wyjaśnij, dlaczego robię to źle. Naprawdę chcę zrozumieć, gdzie się mylę. Dziękuję wszystkim, którzy odpowiedzą. Inna opcja wdrożenia usuwania z kolekcji 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(); } } }
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION