Xayrli kun. Savol
Xarita to'plamidan elementlarni qanday olib tashlashdir . Men boshqa muammoni hal qilmoqchiman va oldinga siljiy olmayman, chunki to'plamdan o'chirish qanday printsip asosida sodir bo'lishini tushunmayapman. G'oya to'plamdan bir xil elementlarni olib tashlashdir, taqqoslash qiymat bo'yicha amalga oshiriladi. 8-darajali ma'ruzalardan men tushundimki, "iterator" bizning to'plamimizga havola kabi narsadir. Shuning uchun men 2 ta shunday havolalar yaratdim va to'plamdagi elementlarni taqqoslab, ushbu havola (ob'ekt) iterator2 tegishli bo'lgan elementlarni o'chirishga qaror qildim. Nima uchun noto'g'ri qilayotganimni tushuntiring. Men qayerda xato qilayotganimni tushunmoqchiman. Javob beradigan barchaga rahmat. To'plamdan olib tashlashni amalga oshirishning yana bir varianti
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(); } } }
GO TO FULL VERSION