☕ Java'da List (Liste) Veri Yapısı Nasıl Kullanılır? (ArrayList Rehberi)
Java’da List arayüzü, birden fazla elemanı sıralı biçimde saklamanızı sağlar.
Dizilerle benzer şekilde çalışsa da ArrayList gibi uygulamaları sayesinde çok daha esnektir ve dinamik olarak büyüyüp küçülebilir.
🧠 Teknik Özet
Ana konu: Java List veri yapısı (özellikle ArrayList).
Çözüm sunduğu problem: Boyutu dinamik olarak değişen, indeks tabanlı koleksiyon yönetimi.
Adımlar:
- Liste oluşturma
- Eleman ekleme, değiştirme, silme
- Faydalı metotlarla sorgulama (equals, contains, indexOf, toString)
- Pratik örneklerle liste işlemlerini öğrenme
🔍 List Türleri ve Kullanım Alanları
List, java.util paketinde yer alır ve farklı uygulamaları vardır:
| Tür | Özellik | Kullanım Durumu |
|---|---|---|
| ArrayList | Hızlı, hafif, dinamik boyutlu | Genel kullanım (rehberde bu anlatılıyor) |
| LinkedList | Ekleme ve silmede hızlı | Sık güncelleme yapılan listeler |
| Vector | Thread-safe (çoklu iş parçacığı güvenliği) | Senkronize işlemler için |
💡 İpucu: Tek iş parçacıklı (single-thread) projelerde
ArrayList, performans açısından genellikle en doğru seçimdir.
⚙️ 1. Liste Oluşturma
// String türünde bir ArrayList oluşturur.
List<String> evcilHayvanlar = new ArrayList<>();
Çıktı: evcilHayvanlar ==> []
Java listeleri yalnızca nesneleri depolar. Primitive tipler (int, boolean vb.) doğrudan eklenemez — Integer, Boolean gibi wrapper sınıflar kullanılmalıdır.
➕ 2. Eleman Ekleme ve Güncelleme
Eleman Ekleme
// Listenin sonuna "Köpek" ekler.
evcilHayvanlar.add("Köpek");
Belirli bir indekse eleman eklemek için:
// "Kedi" elemanını 0. indekse (listenin başına) ekler.
evcilHayvanlar.add(0, "Kedi");
Sonuç: [Kedi, Köpek]
Eleman Güncelleme
// 0. indeksteki değeri "Kuş" ile değiştirir.
evcilHayvanlar.set(0, "Kuş");
Liste artık: [Kuş, Köpek]
🗑️ 3. Eleman Silme
// "Köpek" değerini siler.
evcilHayvanlar.remove("Köpek");
// Çıktı: true
Listeyi tamamen boşaltmak için:
evcilHayvanlar.clear();
Liste boş hale gelir: []
🧩 4. Faydalı List Metotları
| Metot | Açıklama | Örnek |
|---|---|---|
add() | Eleman ekler | evcilHayvanlar.add("Kuş") |
set() | Belirli indeksteki elemanı değiştirir | evcilHayvanlar.set(1, "Tavşan") |
remove() | Eleman siler | evcilHayvanlar.remove("Kedi") |
clear() | Listeyi temizler | evcilHayvanlar.clear() |
size() | Eleman sayısını döndürür | int n = evcilHayvanlar.size() |
isEmpty() | Liste boş mu kontrol eder | evcilHayvanlar.isEmpty() |
🔎 5. Listeyi Sorgulama
Eşitlik Karşılaştırması (equals)
List<String> liste1 = Arrays.asList("Kedi", "Köpek");
List<String> liste2 = Arrays.asList("Kedi", "Köpek");
liste1.equals(liste2); // true
Eleman İçeriyor mu? (contains)
evcilHayvanlar.contains("Tavşan"); // true
İndeks Bulma (indexOf)
evcilHayvanlar.indexOf("Kedi"); // 1
Listeyi Metin Formatına Dönüştürme (toString)
System.out.println(evcilHayvanlar.toString());
// Çıktı: [Tavşan, Kedi]
🔁 6. forEach Metodu ile Listeyi Dolaşma
// Listedeki tüm elemanları sırayla yazdırır.
evcilHayvanlar.forEach(x -> System.out.println(x));
Çıktı: Tavşan Kedi
Bu yöntem, klasik döngülere göre daha kısa ve okunaklıdır. Ayrıca Consumer arayüzü ile uyumlu çalışır.
❓ Sıkça Sorulan Sorular (SSS)
- Neden List, dizilere göre daha avantajlıdır?
Çünkü boyutu dinamik olarak değişebilir, eleman ekleme/çıkarma kolaydır.
- List'ler neden primitive tipleri tutamaz?
Yalnızca nesneleri saklarlar. int yerine Integer, char yerine Character kullanılmalıdır.
- ArrayList ve LinkedList farkı nedir?
ArrayList erişim için hızlıdır, LinkedList ise sık ekleme/silme işlemlerinde verimlidir.
- Vector neden tercih edilmez?
Senkronizasyon nedeniyle her işlemde performans kaybı yaratır.
- List boş mu kontrol etmek için ne yapılır?
isEmpty() metodu kullanılabilir.
🏁 Sonuç
Bu rehberde Java’da ArrayList kullanarak liste oluşturmayı, eleman eklemeyi, güncellemeyi, silmeyi ve sorgulamayı öğrendin. List yapısı, modern Java projelerinde veri yönetiminin en esnek ve güçlü araçlarından biridir.