25 Aralık 2012 Salı

ArrayList'teki çift kaydı silmek

Düşünüldüğünden çok daha basit bir yolu var.

Nasıl mı?
ArrayList'inizi HashSet'e çevirebilirsiniz.

Sıralı & çift kayıt içeren listemiz:
List<String> siraliArrayList= (List<String>) Arrays.asList("Android" , "Android""iOS""Windows mobile");

HashSet aşağıdaki çevirme (convert) işlemi ile çift kayıtları silerek yeni bir liste oluşturmuş oluyoruz.
HashSet<String> listToSet = new HashSet<String>(siraliArrayList);

sıraliArrayList isimli listemizin boyutu(size) 4 iken convert ettiğimiz "listToSet" listemizin boyutu 3 olacaktır. Bunun nedeni ise "Android" çift kayıtlardan bir diğerinin silinmesidir.

İkisinin arasındaki fark, Hashset sıralı listedeki sırayı dikkate almayacaktır.

Yani iki listenin de çıktısını almak istediğimiz de:

siraliArrayList için : [Android, Android, iOS, Windows mobile], size : 4
listToSet için : [iOS, Android, Windows mobile], size : 3, Bambaşka bir düzende getirebilir.

Eğer sıralamanın korunmasını ve çift kaydın silinmesini istiyorsanız HashSet yerine LinkedHashSet kullanmalısınız.

____

Hiç yorum yok:

Yorum Gönder