JavaRush /Java блогы /Random-KK /Жинақтар. Карта. Жою.
oktava
Деңгей
Санкт-Петербург

Жинақтар. Карта. Жою.

Топта жарияланған
Қайырлы күн. Мәселе Карта жинағынан элементтерді қалай жоюға болады . Мен басқа мәселені шешуге тырысып жатырмын және мен алға жылжи алмаймын, өйткені жинақтан жоюдың қандай принципке негізделгенін түсінбеймін. Идея – жинақтан бірдей элементтерді алып тастау; салыстыру мән бойынша орындалады. 8-деңгейдегі лекциялардан мен «итератор» біздің жинаққа сілтеме сияқты нәрсе екенін түсіндім. Сондықтан мен осындай 2 сілтеме жасадым және жинақтағы элементтерді салыстыра отырып, осы сілтеме (нысан) итератор2 сілтеме жасайтын элементтерді жоюды шештім. Неліктен қате істеп жатқанымды түсіндіріңіз. Мен қай жерде қателескенімді түсінгім келеді. Жауап беретіндердің барлығына рахмет. Жинақтан жоюды жүзеге асырудың басқа нұсқасы 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(); } } }
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION