JAVA Kodlama Örnekleri #23 - Dizileri Karşılaştırma - equals ve Arrays.equals
Arrays.equals(dizi1 , dizi2); Dizileri karşılaştırmaya yarar. İki dizinin aynı sırayla aynı öğeleri içermesi durumunda true(doğru) değer, aksi durumda da false(yanlış) değer döndürür. BÜYÜK/küçük harf duyarlıdır.
Arrays.equals(dizi1 , dizi2)
veya
dizi1.equals(dizi2) şeklinde kullanılabilir.
Arrays.equals(dizi1 , dizi2) şeklindeki kullanımda iki dizinin elemanlarının aynı sırada ve aynı değerde olup olmadığına bakılır.
dizi1.equals(dizi2) şeklindeki kullanımda ise iki dizinin bellekte aynı yerde olup olmadığına bakılır. Şöyleki, dizi1 ve dizi2 nin elemanları birebir aynı olsa bile, bellekte farklı yerlerde tanımlanmışlar ise false döndürür.
Arrays.equals(dizi1 , dizi2)
veya
dizi1.equals(dizi2) şeklinde kullanılabilir.
Arrays.equals(dizi1 , dizi2) şeklindeki kullanımda iki dizinin elemanlarının aynı sırada ve aynı değerde olup olmadığına bakılır.
dizi1.equals(dizi2) şeklindeki kullanımda ise iki dizinin bellekte aynı yerde olup olmadığına bakılır. Şöyleki, dizi1 ve dizi2 nin elemanları birebir aynı olsa bile, bellekte farklı yerlerde tanımlanmışlar ise false döndürür.
ÖRNEK:
Beş ayrı dizi tanımlayalım.
1. dizinin elemanları Pazartesi, Salı, Çarşamba olsun.
2. dizinin elemanları 1. dizi ile aynı olsun.
3. dizinin elemanları Cumartesi ve Pazar olsun.
4. dizinin elemanları PAZARTESİ, SALI ve ÇARŞAMBA olsun.
5. diziyi de 2. diziyi ona atayarak tanımlayalım.
Sonra dizileri birbirleriyle karşılaştıralım.
String[] d1 = {"Pazartesi", "Salı", "Çarşamba"};
String[] d2 = {"Pazartesi", "Salı", "Çarşamba"};
String[] d3 = {"Cumartesi", "Pazar"};
String[] d4 = {"PAZARTESİ", "SALI", "ÇARŞAMBA"};
String[] d5 = d2;
System.out.println("1. "+ Arrays.equals(d1 , d2));
System.out.println("2. "+ d1.equals(d2));
System.out.println("3. "+ Arrays.equals(d2 , d3));
System.out.println("4. "+ d2.equals(d4));
System.out.println("5. "+ Arrays.equals(d2 , d5));
System.out.println("6. "+ d2.equals(d5));
Program Çıktısı:
1. true
2. false
3. false
4. false
5. true
6. true
Process finished with exit code 0
Çıktıda görüldüğü üzere d1 ve d2 nin elemanları birebir aynı olmasına rağmen 1. sırada true, 2. sırada false döndürdü çünkü 1. sırada elemanları, 2. sırada ise dizilerin bellekteki yerlerini karşılaştırmış olduk.
3. sırada false döndürdü çünkü d2 ve d3 dizilerinin elemanları farklı.
4. sırada false döndürdü çünkü d2 ve d4 dizilerinin elemanları ve bellekteki yerleri farklı.
5. ve 6. sıraların her ikisinde de true döndürdü çünkü d5 i oluştururken d2'nin bellekteki yeri ve elemanlarını d5'e atayarak tanımladık.
Yorumlarınızı Bekliyorum