Java

Java’da iki diziyi karşılaştırma

Java’da iki dizinin elemanlarını karşılaştırarak dizilerin aynı mı farklı mı olduğunu öğrenmek için aşağıdaki algoritma ile çözüme ulaşabilirsiniz.

Öncelikle basit mantıkta iki dizinin aynı olup olmadığını sorgulayarak işleme başlayalım ve sonucu görelim.

Çıktı:

Java’da, diziler birinci sınıf nesnelerdir. Yukarıdaki programda, arr1 ve arr2 iki farklı nesneye iki referanstır. Dolayısıyla arr1 ve arr2‘yi karşılaştırdığımızda iki referans değişkeni karşılaştırılır, bu nedenle çıktıyı “Dizler Aynı Değil” olarak alırız (Daha fazla örnek için buna bakın).

Dizi içerikleri nasıl karşılaştırılır?

Basit bir yol, bir döngü çalıştırmak ve öğeleri tek tek karşılaştırmaktır. Java, iki diziyi karşılaştırmak için doğrudan Arrays.equals() yöntemi sağlar. Aslında, Arrays sınıfında farklı ilkel türler (int, char, ..vb) ve biri Nesne türü (Java’daki tüm sınıfların temelidir) için equals() yöntemlerinin bir listesi vardır.

Çıktı:

Arrays.equals() derin bir karşılaştırma yapamaz. Java, bu Arrays.deepEquals() için derin bir karşılaştırma yapan başka bir yöntem sağlar.

Sahip olabileceği herhangi bir özel equals() yöntemini kullanarak iki nesneyi karşılaştırır (Object.equals() dışında bir equals() yöntemi uygulanmışsa). Değilse, bu yöntem daha sonra nesneleri yinelemeli olarak alanlara göre karşılaştırmaya devam edecektir. Her alanla karşılaşıldıkça, türetilmiş equals() varsa kullanmaya çalışır, aksi takdirde daha fazla geri çekmeye devam eder.

Yorum Yap

Yorum yapmak için tıklayın