Two Arraylist Object Difference In Java

Elimizde bir tane kisi classı var ve diyelim ad,soyad gibi iki tane nesneleri var.class içindeki get ve set metotları da bu nesnelere erişimi sağlıyor.

 List kisilerim = new ArrayList();

for(int i=0;i<=2;i++){
Kisi k = new Kisi();
k.setAd("Mehmet"+i);
k.setSoyad("FASIL"+i);
kisilerim.add(k);
}

Yukarıdaki arraylist objeden farkını almak istediğim yeni bir arraylist obje daha yapayım

   List yeniKisiler = new ArrayList();
   for(int i=0;i<1;i++){
Kisi nk = new Kisi();
nk.setAd("Mehmet"+i);
nk.setSoyad("FASIL"+i);
kisilerim.add(nk);
}

here is the magic:)

   kisilerim.removeAll(yeniKisiler);

“Two Arraylist Object Difference In Java” üzerine 4 yorum.

  1. Apache Commons’a ait CollectionUtils ile de List interface’inden türeyen sınıfların kesişim veya farklarını alabilirsin. Magic is not reinvetion the wheel.

    1. Bu kodu androiddde kullandım abi. o yüzden kullandığım sınıflar içinden en az maliyetli olanı tercih etmiştim.

  2. “The good thing about reinventing the wheel is that you can get a round one.”
    Douglas Crockford – In response to David Winer

  3. Burada önemli olan nesnelerin equals() ve hashCode() metotlarını implement etmektir. Yoksa bu şekilde oluşturduğun iki nesne her ne kadar tüm fieldları string olarak aynı dahi olsa aynı değil farklı nesnelerdir. Java da Collections Api nesnelerin aynı olup olmadığını anlamak için equals() ve hashCode() metotlarına bakar. Dolayısıyla iki nesnenin neye göre aynı olup neye göre olmayacağını bizim equals() ve hashCode() metotlarını implement ederek belirlememiz gerekir. Bu konuya dikkat edelim sonra saç baş yolmayalım 🙂

Yorumlar kapalı.