Erkan KESER

Dinamik Diziler (ArrayList) - Java ile Android Studio

ArrayList Nedir, java ile android studio da nasıl kullanılır konuları anlatılmaktadır.

1. ArrayList Nedir?

  • ArrayList, Java'da java.util paketinde bulunan bir sınıftır.
  • Dizilere benzer şekilde veri saklar, ancak boyutu dinamik olarak değişebilir.
  • Eleman ekleme, silme ve güncelleme gibi işlemler kolayca yapılabilir.
  • Generic yapı sayesinde farklı veri türlerini (String, Integer, Double, vb.) saklayabilir.

2. ArrayList'in Avantajları

  • Dinamik Boyut: Dizilerin aksine, boyutu otomatik olarak artar veya azalır.
  • Kolay Eleman Ekleme/Silme: Eleman eklemek veya silmek için basit metotlar sunar.
  • Esneklik: Farklı veri türlerini destekler (Generic yapı).
  • Zengin Metotlar: Eleman arama, sıralama, karşılaştırma gibi işlemler için birçok metot içerir.

3. ArrayList Oluşturma

ArrayList, java.util.ArrayList sınıfından türetilir. Oluştururken veri türü belirtilmelidir (Generic yapı).

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");
isimler.add("Ayşe");

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

4. ArrayList'e Eleman Ekleme

ArrayList'e eleman eklemek için add() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");
isimler.add("Ayşe");

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

5. ArrayList'ten Eleman Okuma

ArrayList'teki elemanlara indeks numarası ile erişilir. İndeksler 0'dan başlar. get() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");
isimler.add("Ayşe");

System.out.println(isimler.get(0)); // Ali
System.out.println(isimler.get(1)); // Veli

6. ArrayList'te Eleman Silme

ArrayList'ten eleman silmek için remove() metodu kullanılır. İndeks veya elemanın kendisi belirtilebilir.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");
isimler.add("Ayşe");

isimler.remove(1); // İndeks 1'deki elemanı sil (Veli)
System.out.println(isimler); // [Ali, Ayşe]

isimler.remove("Ayşe"); // "Ayşe" elemanını sil
System.out.println(isimler); // [Ali]

7. ArrayList'te Eleman Güncelleme

ArrayList'teki bir elemanı güncellemek için set() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");

isimler.set(1, "Mehmet"); // İndeks 1'deki elemanı "Mehmet" ile değiştir
System.out.println(isimler); // [Ali, Mehmet]

8. ArrayList'te Eleman Sayısı

ArrayList'teki eleman sayısını öğrenmek için size() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");

System.out.println(isimler.size()); // 2

9. ArrayList'te Eleman Arama

ArrayList'te bir elemanın olup olmadığını kontrol etmek için contains() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");

boolean varMi = isimler.contains("Ali");
System.out.println(varMi); // true

10. ArrayList'te Döngü Kullanımı

ArrayList'teki elemanları döngü ile gezmek için for-each veya klasik for döngüsü kullanılabilir.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");
isimler.add("Ayşe");

// For-each döngüsü
for (String isim : isimler) {
    System.out.println(isim);
}

// Klasik for döngüsü
for (int i = 0; i < isimler.size(); i++) {
    System.out.println(isimler.get(i));
}

11. ArrayList'te Sıralama

ArrayList'teki elemanları sıralamak için Collections.sort() metodu, ArrayList'teki elemanları tersine çevirmek için Collections.reverse() metodu kullanılır. 

Örnek:

import java.util.ArrayList;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> sayilar = new ArrayList<>();
        sayilar.add(50);
        sayilar.add(20);
        sayilar.add(40);

        Collections.sort(sayilar); // Küçükten büyüğe sırala
        System.out.println(sayilar); // [20, 40, 50]
    }
}

12. ArrayList'te Temizleme

ArrayList'teki tüm elemanları silmek için clear() metodu kullanılır.

Örnek:

ArrayList<String> isimler = new ArrayList<>();
isimler.add("Ali");
isimler.add("Veli");

isimler.clear(); // Tüm elemanları sil
System.out.println(isimler.size()); // 0

13. Örnek Uygulama: ArrayList ile Öğrenci Notları

Aşağıda, ArrayList kullanarak öğrenci notlarını saklayan ve işleyen(notları sıralı göster, en yüksek notu bul, ortalamasını al) bir örnek bulabilirsiniz:

import java.util.ArrayList;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> notlar = new ArrayList<>();
        notlar.add(85);
        notlar.add(90);
        notlar.add(75);

        // Notları sırala
        Collections.sort(notlar);
        System.out.println("Sıralı notlar: " + notlar);

        // En yüksek not
        int enYuksekNot = notlar.get(notlar.size() - 1);
        System.out.println("En yüksek not: " + enYuksekNot);

        // Not ortalaması
        int toplam = 0;
        for (int not : notlar) {
            toplam += not;
        }
        double ortalama = (double) toplam / notlar.size();
        System.out.println("Not ortalaması: " + ortalama);
    }
}