JavaRush /Java Blog /Random-TK /Kolleksiýalar. Karta Öçür.
oktava
Dereje
Санкт-Петербург

Kolleksiýalar. Karta Öçür.

Toparda çap edildi
Günüňiz haýyrly. Sorag, Karta ýygyndysyndan elementleri nädip aýyrmaly . Başga bir meseläni çözmäge synanyşýaryn we öňe gidip bilemok, sebäbi kolleksiýadan haýsy prinsipiň pozulýandygyna düşünemok. Bu pikir, birmeňzeş elementleri ýygyndydan aýyrmak; deňeşdirme baha boýunça edilýär. 8-nji derejeli leksiýalardan "iteratoryň" kolleksiýamyza baglanyşyk ýaly bir zatdygyna düşündim. Şonuň üçin men şeýle 2 baglanyşyk döretdim we ýygyndydaky elementleri deňeşdirip, bu baglanyşyk (obýekt) iterator2-iň görkezýän elementlerini ýok etmegi makul bildim. Näme üçin nädogry edýändigimi düşündiriň. Hakykatdanam nirä ýalňyşýandygyma düşünmek isleýärin. Jogap berjek hemmelere sag bolsun aýdýaryn. Collectionygyndydan aýyrmagy amala aşyrmagyň başga bir warianty 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(); } } }
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION