Java Ders 7 – Arrays Sınıfı (Diziler) Konusu

Java Derslerine devam ediyoruz. Bugün Arrays Sınıfı nedir? Java Diziler ne işe yarar? Tek boyutlu ve çok boyutlu diziler arasındaki farklar nelerdir? Tüm bunlara değinip Arrays Sınıfı metotlarını göreceğiz. Array (dizi), aynı veri tipinden çok sayıda değişkeni tutan yapılara verilen isimdir. Örneğin int tipine sahip birden çok sayıyı bir array içinde tutabiliriz. Bu listedeki öğelere sıra numarasıyla erişip belli başlı işlemler yapabiliriz.

Tek Boyutlu Array

Tek indisli dizilerdir. 0. bileşenden başlayıp sonuncu bileşene kadar indis sırasına göre dizilirler. Array bildirmek için [] köşeli parantezlerini kullanılır. Örneğin int[] artık bir Array olduğunu belirtir. Bildirim şöyle yapılır. Aşağıdaki 5 boyutlu bir dizidir. İkinci köşeli paranteze dizinin boyutu yazılır.

int[] arrayim = new int [5];

Dizi Oluşturmak – Örnek

  1. Dizi Bildirimi
  2. Dizi nesnesini oluşturmak
  3. Bileşenlere değer atamak
  4. Dizideki değerleri okumak

Kafa Karışıklığını Gidermek

Yukarıdaki resimde 5 boyutlu bir dizi var. 4’e kadar indise sahip olması kafanızı karıştırmasın 0’da sayarsanız 5 ediyor. İlk indis 0, son indis 4 yani son elemanı çağırmak istiyorsak diziAdi[4] ile çağırırız. Daha önce bahsetmiştim programlamada sayımlar 0. indisten başlar bunu asla unutmayın.

Java Diziler Değer Atama Çeşitleri

Dizi Boyutunu Öğrenmek (length)

Önemli Notlar

  • Java Diziler atanmayan değer varsayılan olarak 0’dır. Yani 5 boyutlu bir dizi oluşturup ilk indise (0’a) değer atarsak geriye kalan indislerdeki değerler 0 olur.
  • Tanımlanmış dizinin boyutu değiştirilemez. Yani dizi boyutu arttırmak veya azaltmak mümkün değildir. Ancak bir başka diziye aktarımla çözülebilir.
  • Boyutundan büyük bir indisten veri almaya veya atamaya çalışırsak NullPointerException hatası verir.
  • İstediğimiz tipin dizisini oluşturabiliriz. String, int, float veya nesne fark etmiyor tipi biz belirliyoruz. Hatta dilersek Object tipindeki dizilerle tüm tipleri bir arada tutabiliriz yalnız riskli bir işlemdir.

Döngülerle Dizilere Değer Atamak ve Yazdırmak

Henüz görmediğimiz bir konu bu yazıdan sonra anlatmayı düşünüyorum fakat kısaca döngülere değinip kullanmamız gerekiyor. Döngüler bir koşula bağlı olarak belirlediğimiz sayıda bir bloğu çalıştırmak için kullanılır. Bu sayı dizinin boyutu kadar olabilir bizde bu sırada diziden değer okuyabilir veya diziye değer atayabiliriz. Örnek üzerinde daha iyi şekilde görelim.

For-Each Döngüsü

Bu döngü hemen yukarıdaki for döngüsünden farklı olarak daha basittir. For döngüsü ile aynı işi yapar fakat elemanları sırayla getirir. İndis vermez direkt olarak elemanı verir. Hemen aşağıdaki örnekte görebiliriz. Eğer for döngüleri kafanızı karıştırdıysa Java Ders 8‘i okuyup buraya tekrar dönebilirsiniz.

Array Kopyalama

Array sınıfının copyOf ve copyRange metotları bulunmaktadır. Bunlara geçmeden önce System sınıfının bir metodunu inceleyelim. System sınıfında yer alan arraycopy(Object src, int srcPos, Object dest, int destPos, int length) metodun parametreleri şunları ifade eder.

ParametreÖzelliği
Object srcKopyalanacak Kaynak Array
int srcPosKaynağın hangi indisinden kopyalanmaya başlanacak
Object destHedef Array
int destPosHedef Array’e hangi indisinden itibaren yapıştırma başlanacak
int lengthKaç bileşen kopyalanacak

CopyOf ve CopyRange Metotları

Array Sıralama

Arrays sınıfının farklı veri tiplerini sıralamak için birçok metodu vardır. Bu metotların hepsi static olduğu için nesne oluşturmaya gerek kalmadan direkt kullanılabilir. Sayıları sıralamak, metinleri sıralamak gibi bir çok işlemi bu metotlarla yapabiliriz.

Dizilerde Arama Yapmak (binarySearch)

Çok Boyutlu Arrayler (Diziler)

Array of Array olarak adlandırılır. Birden çok indise bağlı olan arraylerdir. Oluşturma, değer atama, değer okuma gibi işlemler tek boyutlu dizilerde olduğu gibidir. Fakat bundaki fark daha fazla boyut olduğundan birden fazla sütun ve satıra sahiptir aşağıda 2 boyutlu bir diziyi görebilirsiniz.

int[][] dizim = new int[2][3];

Bugünkü Java Dersinde Arrays Sınıfını görüp tek boyutlu dizileri ve çok boyutlu dizileri inceledik. Ayrıca Arrays sınıfının birçok metoduna değindik umarım sizler için faydalı olmuştur. Döngüler de kafanız karşıtıysa bir sonraki konuyu okuyup döngüleri iyice öğrenip tekrar buraya dönebilirsiniz. Sonraki dersimizde görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir