İçeriğe geç

ArrayList

ArrayList, Java’nın dinamik diziler oluşturmak için sunduğu bir sınıftır.
Normal dizilerde (array) boyut sabittir; ancak ArrayList boyutunu otomatik olarak artırabilir veya azaltabilir.

📦 Paket: java.util.ArrayList


import java.util.ArrayList;
ArrayList<String> isimler = new ArrayList<String>();

Java 7 ve sonrası için “Diamond Operator” kullanılabilir:

ArrayList<String> isimler = new ArrayList<>();

isimler.add("Ali");
isimler.add("Ayşe");
isimler.add("Mehmet");
System.out.println(isimler); // [Ali, Ayşe, Mehmet]

System.out.println(isimler.get(0)); // Ali
System.out.println(isimler.get(2)); // Mehmet

⚠️ get() metodu indeks dışı bir değer alırsa IndexOutOfBoundsException hatası verir.


isimler.set(1, "Zeynep");
System.out.println(isimler); // [Ali, Zeynep, Mehmet]

isimler.remove("Ali"); // Değer ile silme
isimler.remove(1); // İndeks ile silme
System.out.println(isimler);

System.out.println("Toplam eleman: " + isimler.size());

🔹 8. Tüm Elemanları Temizleme (clear())

Section titled “🔹 8. Tüm Elemanları Temizleme (clear())”
isimler.clear();
System.out.println(isimler.isEmpty()); // true

ArrayList<String> sehirler = new ArrayList<>();
sehirler.add("Ankara");
sehirler.add("İstanbul");
System.out.println(sehirler.contains("Ankara")); // true
System.out.println(sehirler.contains("İzmir")); // false

for (int i = 0; i < isimler.size(); i++) {
System.out.println(isimler.get(i));
}
for (String isim : isimler) {
System.out.println(isim);
}
isimler.forEach(isim -> System.out.println(isim));

ArrayList<Integer> sayilar = new ArrayList<>();
sayilar.add(10);
sayilar.add(20);
ArrayList<Double> oranlar = new ArrayList<>();
ArrayList<Boolean> durumlar = new ArrayList<>();

💡 Java’da ArrayList sadece nesne tipleri ile çalışır.
İlkel türler (int, double, boolean) yerine wrapper sınıfları (Integer, Double, Boolean) kullanılmalıdır.


import java.util.ArrayList;
import java.util.Collections;
ArrayList<Integer> sayilar = new ArrayList<>();
sayilar.add(30);
sayilar.add(10);
sayilar.add(20);
Collections.sort(sayilar);
System.out.println(sayilar); // [10, 20, 30]

Collections.reverse(sayilar);
System.out.println(sayilar); // [30, 20, 10]

ArrayList<String> liste1 = new ArrayList<>();
liste1.add("Java");
liste1.add("Python");
ArrayList<String> liste2 = new ArrayList<>(liste1);
System.out.println(liste2); // [Java, Python]

🔹 15. İki Listeyi Birleştirme (addAll())

Section titled “🔹 15. İki Listeyi Birleştirme (addAll())”
ArrayList<String> a = new ArrayList<>();
a.add("Elma");
a.add("Armut");
ArrayList<String> b = new ArrayList<>();
b.add("Üzüm");
b.add("Kivi");
a.addAll(b);
System.out.println(a); // [Elma, Armut, Üzüm, Kivi]

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Mehmet");
isimler.add("Zeynep");
String enUzun = isimler.get(0);
for (String isim : isimler) {
if (isim.length() > enUzun.length()) {
enUzun = isim;
}
}
System.out.println("En uzun isim: " + enUzun);

MetotAçıklama
add()Yeni eleman ekler
get(index)Elemanı döndürür
set(index, value)Elemanı değiştirir
remove()Eleman siler
size()Eleman sayısını döner
clear()Tüm elemanları siler
contains()Eleman var mı kontrol eder
addAll()Başka bir liste ekler
Collections.sort()Sıralama yapar

💡 Not: ArrayList, dinamik yapısı sayesinde modern Java uygulamalarında sıkça tercih edilir.
Ancak eş zamanlı (multi-thread) işlemler için Vector veya CopyOnWriteArrayList tercih edilmelidir.