Java’da Diziler (Tek Boyutlu Diziler) Ders 2

Dizilerin 2. bölümünde sizlerle birlikteyiz.1. Bölüm için buraya tıklayın

Diziler iç içe isek mutlaka for döngülerine işimiz düşer.Bir önce ki dersimizde for döngüsü ile dizilerle işlemler yapmıştık.Şimdi normalde klasik for döngüsü ile de işlemler yapabilirim ama for-each döngüsü diye özel bir döngümüz var bildiğimiz gibi işte bu döngü ile tam da dizilerde işlem yapmak ve dizi elemanlarına erişmek çok daha kolay olucaktır.

Şimdi Örneklere Geçelim

  • Öncelikle bir dizi tanımladım ve elemanlarımı yerleştirdim.Ayrıca toplam diye bir değişken yaptım.
  • For-each diye bir döngü yaptım böylelikle döngü elemanlarıma erişip onlar geriden çok basit bir yazımla işlem gerçekleştirebilirim.
  • For-each ile dizinin her bir elemanına eriştim ve her elemanını sayim isimli değişkenime sıra sıra atadım.Burada for-each bu işe yarıyor her elemanı tek tek erişip local değişkenime atarsın.
  • He seferinde ise toplam += ile degerlerimi topladım.Ardından döngüden çıkıp ekrana bastım.

Dizi Elemanların Kopyalayalım

Dizi elemanalarını kopyalamak için farklı yöntemler var.Burada System.ArrayCopy komutunu göreceğiz.

  • CopyFrom olarak 7 elemanlı bir dizi tanımladım ve elemanlarımı yerleştirdim.
  • CopyTo isimli 7 eleman sayısını olucak bir dizi tanımladım ama elemanlarını girmedim çünkü bu diziye kopyalıcam elemanlarımı.
  • Burada yazdığım komutun syntax kısmına bakalım.
  • (CopyFrom,2,copyTo,0.5) demek : CopyFrom dizisinin 2. index değerinden (yani 12 oluyor bu) CopyTo dizisine elemanları kopyala demek.Kopyalarken de CopyTo dizisinin 0. index ile 5. index arasına kopyala demek.İşte bu yüzden CopyTo dizisinin son 2 index değerine ait value 0, 0 olarak sonuç verdi yani null.

Java.util.Arrays Sort Komutu (Sıralamak)

Dizi elemanlarını sıralama işleminde farklı yöntemler mevcut biz burada Java.util.Arrays kütüphanesinde ki sort komutunun kullanımına bakıcaz.

  • Sayiler isimli dizimi yaptım ve rastgele elemanlarını yerleştirdim.
  • Arrays.Sort(sayilar) ile küçükten byüpe elemanlarımı sıralamış oldum.
  • Küçükten büyüğe doğrular sıralanmış dizi elemanlarımından ise en küçük sayi 0. index degerine sahip oldu.
  • Yine aynı şekilde son index degerime ait value ise en büyük sayım olduğu için dizimin uzunluk degerinden -1 yaparsam son index degerini bilmesende bu şekilde bir dönüş aldım ve en büyük sayıyı ekrana basmış oldum.

Java.util.Arrays binarySearch

İkili Arama algoritması yardımıyla dizisinde belirtilen elemanı için bu yöntemler arar.

  • Öncelikle dizi içersinde hangi value araycaksam onu tanımladım buradan 69 sayısını bulmak istiyorum.
  • Ardından Arrays.binarySearch komutundan int bir çıktı aldım.Buradan aldığımız çıktı 69 degerinin dizimizde hangi index değerine ait ise onu buluyor.
  • Daha sonra da sonuc değişkeninde aldığım değeride ekrana bastım ve 69 değerinin sayıları dizimin içersinde hangi index değerinde tutulduğunu öğrenmiş oldum.

BinarySearch Ek Parametre

Syntax: static <T> int binarySearch(T[] a, int fromIndex, int toIndex, T key, Comparator<T> c):

BinarySearch ile ek parametre ile de arama yapabilirsiniz.Bir önce ki örneğime 2 adet parametre ekleyeceğim sadece.Sadece aralık belirtiyoruz.

Dizlerde New Komutu

Evet bu konuyu atlamıştık ama artık teknik olarak bir açıklama getirelim ki net olalım.Dizi nesneleri bellekte var olur.Diger nesneler gibi diziler de new anahtar kelimesi ile oluşturulur.İşte eğer new ile oluşturulan bir dizi referans değişkenine döndürür.Bu şekilde bir dizi oluşturduğumda eleman sayısını belirttiğim zaman 10 elemanınına otomatik olarak 0 value ekler.Yani default deger her zaman sıfır olarak gelir.

Aşağıda gördüğünüz gibi mutlaka dizilerde int degerinie sahip bir değişken ile uzunluk belirtiniz.Burada 10 degerını atadım ama 10 değerin atamak zorunda degilim sadece değişkenimi tanımlasamda yeterli.

JAVA SE VERSİYON:Kullanıcağınız komutlar kullandığınız java versiyonuna göre değişkenlik gösterebilir.Örneğin Compare komutu JAVA 8 de çalışmaz.Bu yüzden java versiyonuna hakim olmanız gerekmektedir.

Java SE 9.0.4:Java Arrays Komutları: Buradan bakınız.

Java SE 8:Java Arrays Komutları:Buradan Bakınız

Biz de şuan şimdilik JAVA SE 8 kullanıyoruz.Şİmdilik 🙂

Java 8 kullanmamız bazı şeylere engel değil ama her zaman güncel versiyon kullanmak daha doğru olucaktır.Compare komutu yok diye o işlemi yapamıyoruz anlamına gelmiyor farklı alternatiflerimiz var.

Java.Util.Arrays Copyof Komutu

  • 5 elemanlı 4 index değerine sahip bir dizi tanımladım.
  • CopyOf(dizi, 10) ile şunu diyorum suanda mevcut dizim kaç elemanlı ise onu 10 elemanlı şeklinde güncelle.
  • Böylelikle 5 eleman daha ekleniyor ve default olarak 0 değerini alıyorlar.

Java.util.Arrays Copy Of Range Komutu

  • Yine 5 elemanlı dizim var .
  • Ekrana basarken dikkat ettiyseniz Arrays.toString kullandım eğer bnu kullamzsak ekrana bastığımızda saçma sapan bir çıktı verecektir.
  • Array.CopyOfRange(dizi,1,3) demek dizimin1 ile 3 ün arasında ki kopyala demek.Bunları farklı bir diziye atabilrisniz.

Java.util.Arrays DeepEquals Komutu

  • Bu komut ile 2 dizimin elemanlarını birbirine eşit mi ona bakıyoruz.Eğer eşit ise true değil ise false değerini döndürür.
  • Burada sorgulama yaptığı şey eleman sayısı değil value olduğunu unutmayın.
  • Bu komutu kullanırken 2 dizinin eleman sayılarıda birbirine eşit olmak zorunda değildir, fark etmez.

Java.util.Arrays fill Komutu

Burada olay bir key belirleyerek o key değerini dizinin tüm elemanlarına ekliyoruz.Daha doğrusu veriyi yer değiştiriyoruz.

Evet temel olarak tek boyutlu dizi örneklerimiz bu şekildeydi.Bir sonra ki bölümde görüşmek üzere.

Leave a Reply

*