Anotasyon

Java ArrayList Nedir

Merhaba arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslerimize, Java Nesne Yönelimli Programlama Dersleri serisi altında ArrayList Nedir konusu ile devam ediyoruz.

ArrayList Nedir ?

ArrayList, Collections Framework’unun bir parçasıdır ve java.util paketinde bulunur.

Java ArrayList sınıfı öğeleri depolamak için dinamik bir dizi kullanır. Normal bir dizi gibidir fakat boyut sınırı yoktur. İstenildiği zaman öğe eklenir veya öğe silinebilir. Bu sayede  esnek bir yapıya sahip olduğunu görüyoruz. Aşağıda ki görselde  de detaylı sınıf kurucularını görebilir ve fikir edinebilirsiniz.

ArrayList Yapısı

Java Array List ile ilgili önemli noktalar şunlardır;

  • ArrayList sınıfı, birbirini tekrar eden ve boş değerleri içerebilir,
  • ArrayList sınıfı, sıralı bir koleksiyondur ekleme sırasını korur,
  • ArrayList sınıfı, senkronize bir yapıya sahip değildir. Birden fazla iş bloklarını aynı anda değiştiremez,
  • ArrayList’in yavaş kalma sebeplerinden biri ise dizi listesinden her hangi bir öğe silindiğinde çok fazla kaydırma işlemi yapılması gerekebilir.(ArrayList listesine erişim işlemi O(1), araya ekleme(insertion) işlemi O(n) ve silme (diletion) işlemi O(n) zaman karmaşasına sahiptir.)

  • ArrayList, öğeleri depolamak için dahili olarak bir dizi kullanır. Tıpkı diziler gibi, elemanları indekslerine göre almamızı sağlar.
  • int,char, double vb. gibi ilkel türlerden ArrayList oluşturamayız.

ArrayList Oluşturma ve Eleman Ekleme

ArrayList sınıfını kullanabilmemiz için ilgili kütüphaneleri kullandığınız ide’nin kısa yolu ile veya direkt olarak ekleyebilirsiniz. Bu örneğimizde String değerler içeren bir sınıf oluşturacağız ( List<String> animals = new ArrayList<>();) ardından elemanları ekleyerek ekrana yazdıracağız.

import java.util.ArrayList;
import java.util.List;

public class CreatingArrayList {

       public static void main(String[] args) {
        // Creating an ArrayList of String
        List<String> animals = new ArrayList<>();

        // Adding new elements to the ArrayList
        animals.add("Bird");
        animals.add("Tiger");
        animals.add("Cat");
        animals.add("Dog");

        System.out.println(animals);

        // Adding an element at a particular index in an ArrayList
        animals.add(2, "Snake");

        System.out.println(animals);
        
        animals.remove(1);
        
        System.out.println("Remove an element : " + animals);
    }
}

Output:

[Bird, Tiger, Cat, Dog]
[Bird, Tiger, Snake, Cat, Dog]
Remove an element : [Bird, Snake, Cat, Dog

Başka bir koleksiyondan ArrayList  Oluşturma

Burada ArrayList (Collection c) kullanılarak başka bir koleksiyondan yeni ArrayList nasıl oluşturulur,  oluşturulurken addAll() kullanımı ile tüm öğeler yeni ArrayList’e nasıl eklenir bunları da görmüş olacağız.

import java.util.ArrayList;
import java.util.List;

public class CreateArrayListFromCollectionExample {

    public static void main(String[] args) {
        List<Integer> firstFivePrimeNumbers = new ArrayList<>();
        firstFivePrimeNumbers.add(2);
        firstFivePrimeNumbers.add(3);
        firstFivePrimeNumbers.add(5);
        firstFivePrimeNumbers.add(7);
        firstFivePrimeNumbers.add(11);

        // Creating an ArrayList from another collection
        List<Integer> firstTenPrimeNumbers = new ArrayList<>(firstFivePrimeNumbers);


        List<Integer> nextFivePrimeNumbers = new ArrayList<>();
        nextFivePrimeNumbers.add(13);
        nextFivePrimeNumbers.add(17);
        nextFivePrimeNumbers.add(19);
        nextFivePrimeNumbers.add(23);
        nextFivePrimeNumbers.add(29);

        // Adding an entire collection to an ArrayList
        firstTenPrimeNumbers.addAll(nextFivePrimeNumbers);

        System.out.println(firstTenPrimeNumbers);
    }
}

firstFivePrimeNumbers isimli bir arrayList oluşturulmuş içerisine asal sayılar eklenmiştir. Ardından List<Integer> firstTenPrimeNumbers = new ArrayList<>(firstFivePrimeNumbers); kullanarak başka bir collection dan nasıl arrayList oluşturulacağı gösterilmiştir.  Sonrasında tekrar bir arrayList oluşturulup elemanlar eklenmiştir. Son olarak da bir arrayList’e collection’ın tamamının nasıl ekleneceği gösterilmiş (firstTenPrimeNumbers.addAll(nextFivePrimeNumbers);) ve ekrana arrayList’in son hali yazdırılmıştır.

Output:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

ArrayList içerisinde bulunan elemanlara erişme

Bu başlık altında yapacağımız örnekte aşağıda yer alan maddeleri öğreneceğiz.

  • isEmpty() kullanılarak ArrayList’in boş olup olmadığını nasıl kontrol edilir,
  • size() kullanılarak ArrayList’in boyutu nasıl öğrenilir,
  • get() kullanılarak ArrayList’de bulunan öğeye nasıl erişilir,
  • set() kullanlarak ArrayList’de bulunan öğe nasıl güncellenir.
import java.util.ArrayList;
import java.util.List;

public class AccessElementsFromArrayListExample {
    public static void main(String[] args) {
        List<String> topCompanies = new ArrayList<>();

        // Check if an ArrayList is empty
        System.out.println("Is the topCompanies list empty? : " + topCompanies.isEmpty());

        topCompanies.add("Google");
        topCompanies.add("Apple");
        topCompanies.add("Microsoft");
        topCompanies.add("Twitter");
        topCompanies.add("Amazon");

        // Find the size of an ArrayList
        System.out.println("Here are the top " + topCompanies.size() + " companies in the world");
        System.out.println(topCompanies);

        // Retrieve the element at a given index
        String bestCompany = topCompanies.get(0);
        String secondBestCompany = topCompanies.get(1);
        String lastCompany = topCompanies.get(topCompanies.size() - 1);

        System.out.println("Best Company: " + bestCompany);
        System.out.println("Second Best Company: " + secondBestCompany);
        System.out.println("Last Company in the list: " + lastCompany);

        // Modify the element at a given index
        topCompanies.set(4, "Facebook");
        System.out.println("Modified top companies list: " + topCompanies);
    }
}

Output:

Is the topCompanies list empty? : true
Here are the top 5 companies in the world
[Google, Apple, Microsoft, Twitter, Amazon]
Best Company: Google
Second Best Company: Apple
Last Company in the list: Amazon
Modified top companies list: [Google, Apple, Microsoft, Twitter, Facebook]

ArrayList içerisinde bulunan öğeyi silme

Bu başlık altında yapacağımız örnekte aşağıda yer alan maddeleri öğreneceğiz.

  • remove(int index), bir arrayList içerisinde belirli bir indeksdeki elemanı silme,
  • remove(Object o), bir arrayList içerisinde bir eleman nasıl silinir,
  • removeAll(), bir arrayList içerisinde ki her şey nasıl silinir,
  • clear(), bir arrayList nasıl temizlenir.
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;

public class RemoveElementsFromArrayListExample {
    public static void main(String[] args) {
        List<String> programmingLanguages = new ArrayList<>();
        programmingLanguages.add("C");
        programmingLanguages.add("C++");
        programmingLanguages.add("Java");
        programmingLanguages.add("Kotlin");
        programmingLanguages.add("Python");
        programmingLanguages.add("Objective C");
        programmingLanguages.add("PHP");

        System.out.println("Initial List: " + programmingLanguages);

        // Remove the element at index `5`
        programmingLanguages.remove(5);
        System.out.println("After remove(5): " + programmingLanguages);

        // Remove the first occurrence of the given element from the ArrayList
        boolean isRemoved = programmingLanguages.remove("Kotlin");
        System.out.println("After remove(\"Kotlin\"): " + programmingLanguages);

        // Remove all the elements that exist in a given collection
        List<String> scriptingLanguages = new ArrayList<>();
        scriptingLanguages.add("Python");
        scriptingLanguages.add("Ruby");
        scriptingLanguages.add("Perl");

        programmingLanguages.removeAll(scriptingLanguages);
        System.out.println("After removeAll(scriptingLanguages): " + programmingLanguages);
        // Remove all elements from the ArrayList
        programmingLanguages.clear();
        System.out.println("After clear(): " + programmingLanguages);
    }
}

Output:

Initial List: [C, C++, Java, Kotlin, Python, Objective C, PHP]
After remove(5): [C, C++, Java, Kotlin, Python, PHP]
After remove("Kotlin"): [C, C++, Java, Python, PHP]
After removeAll(scriptingLanguages): [C, C++, Java, PHP]
After clear(): []

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki dersimizde ArrayList ‘ de arama, iterator gibi eksik kalan konulara devam edeceğiz.

Tüm Java Dersleri için tıklayınız..

Kaynaklar :

  1. https://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/dataStructures/Collections/ClassArrayList01.pdf
  2. https://medium.com/@denizf.b/java-collections-arraylist-nedir-7519bc1b7654
  3. https://medium.com/gokhanyavas/javada-generics-43546e77bd8f
  4. https://www.geeksforgeeks.org/arraylist-in-java/
  5. https://beginnersbook.com/2013/12/java-arraylist/
  6. https://www.programiz.com/java-programming/arraylist

Ayrıca örnekleri https://onecompiler.com/ adresinden deneyebilirsiniz.

45

Sevde Aybüke Kaleli

DevOps Engineer at Evam, M.Sc.

2 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?