Takip et

Java’da Diziler Nasıl Kullanılır?

Java’da Diziler Nasıl Kullanılır? Java programlama dilinde diziler (arrays), aynı veri tipindeki birden fazla değeri tek bir değişken altında

Java’da Diziler Nasıl Kullanılır?

Java programlama dilinde diziler (arrays), aynı veri tipindeki birden fazla değeri tek bir değişken altında depolamanızı sağlayan temel ve güçlü bir veri yapısıdır. Programlamanın hemen her alanında karşımıza çıkan diziler, verileri düzenli bir şekilde saklamak, erişmek ve işlemek için vazgeçilmez bir araçtır. Bu makalede, Java’da dizilerin ne olduğundan, nasıl tanımlandığından, kullanıldığından, çok boyutlu dizilere ve gelişmiş dizi işlemlerine kadar geniş bir yelpazede bilgi sunulacaktır. Amacımız, Java’da dizileri etkin bir şekilde kullanabilmeniz için kapsamlı bir rehber sağlamaktır.

Dizi Nedir?

Dizi, bellekte ardışık (contiguous) bir blok halinde saklanan, belirli bir veri tipine sahip, sabit boyutlu bir eleman koleksiyonudur. Yani, bir dizi oluşturduğunuzda, o dizinin kaç eleman barındıracağını önceden belirtmeniz gerekir ve bu boyut daha sonra değiştirilemez. Dizinin tüm elemanları aynı veri tipine sahip olmak zorundadır (örneğin, sadece tamsayılar veya sadece String’ler).

Neden Dizi Kullanırız?

Diziler, özellikle benzer tipteki çok sayıda veriyi yönetmeniz gerektiğinde büyük kolaylık sağlar. Örneğin, 100 öğrencinin notunu saklamak istediğinizde, 100 farklı değişken tanımlamak yerine tek bir not dizisi oluşturmak çok daha pratik ve düzenlidir. Diziler, veriye indeks numarası (sıfırdan başlayarak) aracılığıyla doğrudan erişim imkanı sunarak hızlı okuma ve yazma işlemleri sağlar. Bu da onları birçok algoritma ve veri işleme görevi için ideal kılar.

Dizilerin Sınırlamaları

Dizilerin en önemli sınırlaması, boyutlarının sabit olmasıdır. Bir kez oluşturulduktan sonra dizinin boyutu ne artırılabilir ne de azaltılabilir. Eğer dinamik olarak büyüyüp küçülen bir veri yapısına ihtiyacınız varsa, Java’nın koleksiyon çatısı (Collection Framework) içindeki ArrayList gibi sınıfları kullanmanız daha uygun olacaktır. Ayrıca, diziler sadece aynı veri tipindeki elemanları saklayabilir; farklı tiplerdeki elemanları bir arada tutmak için başka veri yapılarına ihtiyaç duyulur.

Dizi Tanımlama ve Başlatma

Java’da bir dizi kullanmaya başlamadan önce onu tanımlamanız ve bellekte yer ayırmanız gerekir. Bu süreç iki ana adımdan oluşur: deklarasyon ve başlatma (veya oluşturma).

Dizi Deklarasyonu

Dizi deklarasyonu, derleyiciye bir dizinin kullanılacağını ve hangi tipte elemanlar içereceğini bildirir. Genel sözdizimi şöyledir:

veriTipi[] diziAdi;
// veya
veriTipi diziAdi[]; // Bu stil C/C++'tan gelir ve daha az tercih edilir.

Örnek:

int[] sayilar;
String[] isimler;
double[] sicakliklar;

Bu aşamada dizi için henüz bellekte yer ayrılmamıştır. Sadece sayilar, isimler ve sicakliklar değişkenlerinin birer dizi referansı tutacağı belirtilmiştir.

Dizi Oluşturma (Başlatma)

Dizi oluşturma, new anahtar kelimesi kullanılarak bellekte dizi için gerekli alanı tahsis etme işlemidir. Bu sırada dizinin boyutu belirtilmelidir.

diziAdi = new veriTipi[boyut];

Örnek:

int[] sayilar = new int[5]; // 5 adet int eleman alabilen bir dizi oluşturur.
String[] isimler = new String[3]; // 3 adet String referansı alabilen bir dizi oluşturur.

Dizi oluşturulduğunda, elemanlarına varsayılan değerler atanır:

  • Sayısal tipler (int, double, float, long, short, byte): 0
  • boolean: false
  • Referans tipleri (String, nesneler): null

Dizi Başlatma ve Deklarasyonu Birleştirme

Dizi deklarasyonu ve oluşturma işlemleri genellikle tek bir satırda birleştirilir:

veriTipi[] diziAdi = new veriTipi[boyut];

Örnek:

int[] notlar = new int[10]; // 10 adet int barındıran bir dizi
boolean[] durumlar = new boolean[7]; // 7 adet boolean barındıran bir dizi

Doğrudan Değerlerle Başlatma

Eğer dizinin elemanlarını oluşturma anında biliyorsanız, süslü parantezler {} kullanarak doğrudan değerlerle başlatabilirsiniz. Bu durumda new anahtar kelimesi ve boyut belirtmeye gerek yoktur; derleyici boyutu ve tipleri otomatik olarak çıkarır.

veriTipi[] diziAdi = {deger1, deger2, ..., degerN};

Örnek:

int[] sansliSayilar = {4, 8, 15, 16, 23, 42}; // 6 elemanlı bir int dizisi
String[] gunler = {"Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"}; // 7 elemanlı bir String dizisi

Bu yöntem, özellikle küçük ve önceden bilinen veri setleri için oldukça kullanışlıdır.

Dizilere Erişim ve Değişiklik

Bir dizinin elemanlarına erişmek veya onları değiştirmek için indeks numaralarını kullanırız. Java’da dizi indeksleri sıfırdan başlar.

İndeks Kavramı

Bir dizinin ilk elemanının indeksi 0‘dır, ikinci elemanının indeksi 1‘dir ve bu böyle devam eder. Son elemanın indeksi ise dizinin uzunluğunun bir eksiği kadardır (dizi.length - 1).

Örneğin, 5 elemanlı bir dizinin indeksleri 0, 1, 2, 3, 4 olacaktır.

Elemanlara Erişim

Dizinin belirli bir indeksindeki elemana erişmek için köşeli parantez [] içine indeks numarasını yazarsınız:

veriTipi eleman = diziAdi[indeks];

Örnek:

int[] notlar = {85, 90, 78, 92, 88};
System.out.println("İlk not: " + notlar[0]); // Çıktı: İlk not: 85
System.out.println("Üçüncü not: " + notlar[2]); // Çıktı: Üçüncü not: 78

Elemanları Değiştirme

Dizinin belirli bir indeksindeki elemanın değerini değiştirmek de aynı şekilde indeks kullanarak yapılır:

diziAdi[indeks] = yeniDeger;

Örnek:

int[] notlar = {85, 90, 78, 92, 88};
notlar[1] = 95; // İkinci notu 90'dan 95'e değiştirir
System.out.println("Yeni ikinci not: " + notlar[1]); // Çıktı: Yeni ikinci not: 95

Dizinin Uzunluğu (length Özelliği)

Bir dizinin kaç eleman içerdiğini öğrenmek için length özelliğini kullanırız. Bu özellik, dizinin deklarasyonunda belirtilen boyutu döndürür.

int[] sayilar = new int[10];
System.out.println("Dizinin uzunluğu: " + sayilar.length); // Çıktı: Dizinin uzunluğu: 10

length bir metod değil, bir özelliktir, bu yüzden parantez () kullanılmaz.

ArrayIndexOutOfBoundsException

Eğer bir dizinin geçerli indeks aralığının (0 ile dizi.length - 1 arası) dışındaki bir indekse erişmeye çalışırsanız, Java çalışma zamanında ArrayIndexOutOfBoundsException hatası fırlatır. Bu, dizilerle çalışırken en sık karşılaşılan hatalardan biridir ve genellikle döngü koşullarının yanlış ayarlanmasından kaynaklanır.

int[] dizi = {10, 20, 30};
// System.out.println(dizi[3]); // Hata! dizi.length 3, geçerli indeksler 0, 1, 2

Bu hatayı önlemek için her zaman indekslerin geçerli aralıkta olduğundan emin olmalısınız.

Dizilerle Döngüler

Dizi elemanları üzerinde işlem yapmak, onları yazdırmak veya toplamak gibi görevler için döngüler vazgeçilmezdir.

for Döngüsü

Geleneksel for döngüsü, dizinin elemanlarına indeksleri aracılığıyla erişmek için en yaygın yoldur. Bu, hem elemanları okumak hem de değiştirmek için uygundur.

int[] sayilar = {1, 2, 3, 4, 5};

for (int i = 0; i < sayilar.length; i++) {
    System.out.println("İndeks " + i + ": " + sayilar[i]);
}

Bu döngü, i değişkenini 0'dan başlatır ve sayilar.length - 1 değerine kadar artırarak her elemana sırasıyla erişir.

Gelişmiş for (For-Each) Döngüsü

Java 5 ile birlikte tanıtılan gelişmiş for döngüsü (for-each döngüsü), bir koleksiyonun veya dizinin her elemanı üzerinde sırayla işlem yapmak için daha basit ve okunabilir bir yol sunar. Ancak, bu döngü elemanları değiştirmek için kullanılamaz; sadece okuma amaçlıdır ve indekslere erişim sağlamaz.

int[] sayilar = {10, 20, 30, 40, 50};

for (int sayi : sayilar) {
    System.out.println("Eleman: " + sayi);
}

Yukarıdaki örnekte, her iterasyonda sayilar dizisindeki bir eleman sayi değişkenine atanır ve işlem yapılır. Bu döngü, dizinin tüm elemanları üzerinde işlem yapmanız gerektiğinde ve indekse ihtiyacınız olmadığında idealdir.

while Döngüsü

while döngüsü de dizilerle kullanılabilir, ancak for döngüsü genellikle daha uygun bulunur. Bir sayaç değişkeni manuel olarak yönetilmelidir.

int[] sayilar = {100, 200, 300};
int i = 0;
while (i < sayilar.length) {
    System.out.println("Eleman: " + sayilar[i]);
    i++;
}

Çok Boyutlu Diziler

Java'da sadece tek boyutlu diziler değil, aynı zamanda matrisler veya tablolar gibi yapıları temsil etmek için çok boyutlu diziler de kullanabiliriz. En yaygın olanı iki boyutlu dizilerdir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık