Java’da ArrayList vs LinkedList

sametklou

Java’da ArrayList vs LinkedList

Java programlama dilinde veri yapıları arasında en sık kullanılanlardan biri List interface'ini implemente eden ArrayList ve LinkedList sınıflarıdır. Her iki sınıf da veri elemanlarını saklamak için kullanılır ancak aralarında bazı farklılıklar bulunmaktadır.

ArrayList

ArrayList, Java Collections Framework içinde bulunan bir sınıftır ve dinamik bir dizi olarak çalışır. Yani eleman eklerken veya çıkarırken boyutunu otomatik olarak artırabilir veya azaltabilir. ArrayList sınıfı, elemanlara erişmek için dizilerin sunduğu hızlı erişim özelliğine sahiptir.

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);
        
        System.out.println(numbers);
    }
}

LinkedList

LinkedList, Java Collections Framework içinde bulunan bir diğer sınıftır ve çift yönlü bağlı liste yapısını kullanır. Elemanlar arasında bağlantılar mevcuttur ve her eleman bir önceki ve bir sonraki elemana referans eder. LinkedList, eleman ekleme ve çıkarma işlemlerinde ArrayList'tan daha performanslı olabilir ancak elemanlara erişim noktasında ArrayList'a göre daha yavaş olabilir.

import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> names = new LinkedList<>();
        
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
        
        System.out.println(names);
    }
}

ArrayList vs LinkedList Karşılaştırması

  • ArrayList, elemanların dizide tutulduğu bir yapı kullanırken, LinkedList bağlı listelerle elemanları saklar.
  • ArrayList eleman ekleme ve çıkarma işlemlerinde yavaş olabilirken, LinkedList bu işlemlerde daha performanslı olabilir.
  • ArrayList elemanlara erişimde hızlıdır, çünkü doğrudan indis numarasına erişim sağlar. LinkedList ise elemanlara tek tek bağlantılar üzerinden erişim yapar.
  • Veri yapısının kullanım amacına ve performans ihtiyacına göre ArrayList veya LinkedList tercih edilebilir.

Java'da ArrayList ve LinkedList sınıflarını kullanarak verilerinizi etkili bir şekilde saklayabilir ve işleyebilirsiniz. Hangi veri yapısının kullanılacağına karar verirken yapılan işlemlerin hızı ve karmaşıklığı gibi faktörleri dikkate almak önemlidir.