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(); } } }
GO TO FULL VERSION