Blogger tarafından desteklenmektedir.

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.



Ö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.



Hiç yorum yok