Magandang araw. Ang tanong ay kung paano mag-alis ng mga elemento mula sa koleksyon ng Map . Sinusubukan kong lutasin ang isa pang problema at hindi ako maaaring sumulong, dahil hindi ko maintindihan kung anong prinsipyo ang nangyayari sa pagtanggal sa koleksyon. Ang ideya ay alisin ang magkaparehong elemento mula sa isang koleksyon; ang paghahambing ay ginagawa ayon sa halaga. Mula sa level 8 na mga lektura, naunawaan ko na ang "iterator" ay parang link sa aming koleksyon. Samakatuwid, gumawa ako ng 2 ganoong link at, sa pamamagitan ng paghahambing ng mga elemento sa koleksyon, nagpasyang tanggalin ang mga elemento kung saan tinutukoy ng link (object) na ito ang iterator2. Ipaliwanag kung bakit mali ang ginagawa ko. Gusto ko talagang intindihin kung saan ako nagkamali. Salamat sa lahat ng sasagot. Isa pang opsyon para sa pagpapatupad ng pag-alis mula sa isang koleksyon
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