JavaRush /Java blogi /Random-UZ /To'plamlar. Xarita. Oʻchirish.
oktava
Daraja
Санкт-Петербург

To'plamlar. Xarita. Oʻchirish.

Guruhda nashr etilgan
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(); } } }
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION