9. Diziler ve Koleksiyonlar (Array, ArrayList, HashMap, vb.)

Java logo
Java logo
image text

9. Diziler ve Koleksiyonlar (Array, ArrayList, HashMap, vb.)

Java programlama dilinde, verileri organize etmek ve yönetmek için kullanılan temel yapılar diziler (Arrays) ve koleksiyonlardır (Collections). Bu yapılar, programların daha verimli ve düzenli çalışmasını sağlar. Bu makalede, Java’daki dizileri ve en yaygın kullanılan koleksiyonları (ArrayList, HashMap, vb.) ayrıntılı olarak inceleyeceğiz.

Diziler (Arrays)

Diziler, aynı türden verileri ardışık bellek konumlarında saklayan veri yapılarıdır. Diziler, sabit boyutlu olup, oluşturulduktan sonra boyutları değiştirilemez. Java’da diziler, nesne olarak kabul edilir ve `new` anahtar kelimesi ile oluşturulurlar.

Dizi Tanımlama ve Oluşturma

Bir diziyi tanımlamak için, veri türünü ve dizi boyutunu belirtmelisiniz. İşte bazı örnekler:

Java
int[] sayilar = new int[5]; // 5 elemanlı bir int dizisi
String[] isimler = new String[10]; // 10 elemanlı bir String dizisi

Diziyi tanımlarken, elemanları doğrudan da atayabilirsiniz:

Java
int[] sayilar = {1, 2, 3, 4, 5};
String[] isimler = {"Ali", "Ayşe", "Mehmet"};

Dizi Elemanlarına Erişim

Dizi elemanlarına erişmek için, indeks numarasını kullanırsınız. Java’da dizi indeksleri 0’dan başlar. Örneğin:

Java
int[] sayilar = {10, 20, 30, 40, 50};
int ilkEleman = sayilar[0]; // ilkEleman 10 değerini alır
int ucuncuEleman = sayilar[2]; // ucuncuEleman 30 değerini alır

Dizi sınırlarının dışına çıkmamaya dikkat edin. Aksi takdirde, `ArrayIndexOutOfBoundsException` hatası alırsınız.

Dizi Uzunluğu

Bir dizinin uzunluğunu öğrenmek için `length` özelliğini kullanabilirsiniz:

Java
int[] sayilar = {1, 2, 3, 4, 5};
int uzunluk = sayilar.length; // uzunluk 5 değerini alır

Koleksiyonlar (Collections)

Koleksiyonlar, nesneleri gruplar halinde saklamak ve yönetmek için kullanılan veri yapılarıdır. Java Collections Framework, çeşitli koleksiyon türlerini ve bu koleksiyonlar üzerinde işlem yapmak için kullanılan algoritmaları içerir. Dizilerden farklı olarak, koleksiyonlar genellikle dinamik boyutludur ve eleman ekleme veya çıkarma işlemlerine daha esnek bir şekilde izin verirler.

ArrayList

`ArrayList`, dinamik boyutlu bir dizi olarak düşünülebilir. Eleman ekleme ve çıkarma işlemlerinde esneklik sağlar. `ArrayList`, `java.util` paketinde bulunur.

ArrayList Oluşturma ve Eleman Ekleme

Java
import java.util.ArrayList;

ArrayList sehirler = new ArrayList<>();
sehirler.add("İstanbul");
sehirler.add("Ankara");
sehirler.add("İzmir");

ArrayList Elemanlarına Erişim

`ArrayList` elemanlarına erişmek için `get()` metodunu kullanırsınız:

Java
String ilkSehir = sehirler.get(0); // ilkSehir "İstanbul" değerini alır

ArrayList Eleman Sayısı

`ArrayList` içindeki eleman sayısını öğrenmek için `size()` metodunu kullanırsınız:

Java
int elemanSayisi = sehirler.size(); // elemanSayisi 3 değerini alır

HashMap

`HashMap`, anahtar-değer (key-value) çiftlerini saklayan bir koleksiyon türüdür. Her anahtar benzersiz olmalıdır. `HashMap`, `java.util` paketinde bulunur. Hızlı erişim sağlar.

HashMap Oluşturma ve Eleman Ekleme

Java
import java.util.HashMap;

HashMap<String, Integer> ogrenciYaslari = new HashMap<>();
ogrenciYaslari.put("Ali", 20);
ogrenciYaslari.put("Ayşe", 22);
ogrenciYaslari.put("Mehmet", 21);

HashMap Elemanlarına Erişim

`HashMap` elemanlarına erişmek için `get()` metodunu kullanırsınız. Anahtarı belirtmeniz gerekir:

Java
int aliYasi = ogrenciYaslari.get("Ali"); // aliYasi 20 değerini alır

HashMap Anahtar ve Değerlerini Döngüyle Gezme

`HashMap` içindeki anahtarları ve değerleri döngüyle gezmek için `keySet()` ve `values()` metodlarını kullanabilirsiniz:

Java
for (String isim : ogrenciYaslari.keySet()) {
    int yas = ogrenciYaslari.get(isim);
    System.out.println(isim + "'nin yaşı: " + yas);
}

Diğer Koleksiyonlar

Java Collections Framework’te `LinkedList`, `HashSet`, `TreeSet` gibi başka koleksiyon türleri de bulunmaktadır. Her bir koleksiyonun kendine özgü avantajları ve kullanım alanları vardır. Örneğin:

  • LinkedList: Eleman ekleme ve çıkarma işlemlerinin sık yapıldığı durumlarda tercih edilir.
  • HashSet: Benzersiz elemanları saklamak için kullanılır ve hızlı arama performansı sunar.
  • TreeSet: Elemanları sıralı olarak saklamak için kullanılır.

Diziler ve Koleksiyonlar Arasındaki Farklar

Diziler ve koleksiyonlar arasındaki temel farklar şunlardır:

  • Boyut: Diziler sabit boyutludur, koleksiyonlar ise genellikle dinamik boyutludur.
  • Veri Türü: Diziler, belirli bir veri türündeki elemanları saklar. Koleksiyonlar, nesneleri saklar (primitif veri türleri için wrapper sınıfları kullanılır).
  • Esneklik: Koleksiyonlar, eleman ekleme ve çıkarma işlemlerinde dizilere göre daha esnektir.
  • Metodlar: Koleksiyonlar, elemanları yönetmek için çeşitli metodlar sunar (add, remove, get, vb.).

Sonuç

Java’da diziler ve koleksiyonlar, verileri organize etmek ve yönetmek için güçlü araçlardır. Diziler, sabit boyutlu ve aynı türden verileri saklamak için idealdir. Koleksiyonlar ise, dinamik boyutlu ve farklı türden nesneleri saklamak için daha uygundur. Programlarınızın ihtiyaçlarına göre, doğru veri yapısını seçmek, performans ve okunabilirlik açısından önemlidir.

Bu makalede, diziler ve temel koleksiyonlar (ArrayList, HashMap) hakkında bilgi verdik. Java Collections Framework’teki diğer koleksiyon türlerini de araştırmanızı öneririz.

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*