Yaxşı gün. Sual,
Xəritə kolleksiyasından elementləri necə silməkdir . Mən başqa bir problemi həll etməyə çalışıram və irəli gedə bilmirəm, çünki kolleksiyadan silinmənin hansı prinsiplə baş verdiyini başa düşmürəm. İdeya kolleksiyadan eyni elementləri silməkdir; müqayisə dəyər əsasında aparılır. 8-ci səviyyəli mühazirələrdən başa düşdüm ki, "iterator" bizim kolleksiyamıza keçid kimi bir şeydir. Buna görə də 2 belə keçid yaratdım və kolleksiyadakı elementləri müqayisə edərək, bu keçidin (obyektin) iterator2 istinad etdiyi elementləri silmək qərarına gəldim. Niyə səhv etdiyimi izah edin. Mən həqiqətən harada səhv etdiyimi başa düşmək istəyirəm. Cavab verəcək hər kəsə təşəkkürlər. Kolleksiyadan çıxarılmasını həyata keçirmək üçün başqa bir seçim
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