JavaRush /Java блог /Random UA /Колекція. Map. Видалення.
oktava
23 рівень
Санкт-Петербург

Колекція. Map. Видалення.

Стаття з групи Random UA
Доброго вам дня. Питання в наступному, як відбувається видалення елементів з колекції 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(); } } }
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ