DEV Community

Mustafa  Çam
Mustafa Çam

Posted on

LinkedList, ArrayList

Java'da LinkedList ve ArrayList, List arayüzünü uygulayan iki farklı koleksiyon sınıfıdır ve her ikisi de bir dizi öğeyi saklamak için kullanılır. Ancak, altta yatan veri yapıları ve performans özellikleri açısından farklılıklar gösterirler.

ArrayList

  • ArrayList, dinamik bir dizi olarak işlev gören bir List uygulamasıdır¹.
  • İçsel olarak, boyutu sabit olan bir dizi kullanır ve bu dizi dolu olduğunda, daha büyük bir kapasiteye sahip yeni bir dizi ile değiştirilir¹.
  • ArrayList'in ana avantajı, rastgele erişim performansıdır. Herhangi bir indeksteki öğeye O(1) zaman karmaşıklığı ile erişilebilir¹.
  • Ancak, öğelerin eklenmesi veya çıkarılması, özellikle listenin başında veya ortasında yapılıyorsa, zaman alabilir çünkü diğer tüm öğelerin kaydırılması gerekir¹.

LinkedList

  • LinkedList, her öğenin kendine ait bir veri ve adres bölümü olan ayrı bir nesne olduğu bir çift yönlü bağlı liste kullanır².
  • LinkedList'in ana avantajı, liste başına ve sonuna ekleme ve çıkarma işlemlerinin hızlı olmasıdır. Bu işlemler O(1) zaman karmaşıklığına sahiptir².
  • Ancak, LinkedList'de rastgele erişim performansı düşüktür çünkü belirli bir indekse erişmek için liste başından itibaren gezinmek gerekir ve bu O(n) zaman karmaşıklığına sahiptir².

Kullanım Senaryoları

  • ArrayList genellikle, rastgele erişim gerektiren ve listeye ekleme veya çıkarma işlemlerinin nadiren yapıldığı durumlar için tercih edilir¹.
  • LinkedList ise, sık sık ekleme veya çıkarma işlemleri yapılacaksa ve rastgele erişim ihtiyacı azsa tercih edilir².

Her iki sınıf da Java Collections Framework'ün bir parçasıdır ve genel olarak aynı List arayüz metotlarını sunarlar. Ancak, hangi sınıfın kullanılacağına karar verirken, uygulamanın ihtiyaçlarına ve performans gereksinimlerine bağlı olarak seçim yapmak önemlidir.

Kaynak: Bing ile konuşma, 17.05.2024
(1) Java ArrayList vs LinkedList | Baeldung. https://www.baeldung.com/java-arraylist-linkedlist.
(2) ArrayList vs LinkedList in Java - GeeksforGeeks. https://www.geeksforgeeks.org/arraylist-vs-linkedlist-java/.
(3) ArrayList vs LinkedList in Java - Scaler Topics. https://www.scaler.com/topics/arraylist-vs-linkedlist/.
(4) Difference between LinkedList vs. ArrayList in Java - HowToDoInJava. https://howtodoinjava.com/java/collections/arraylist/linkedlist-vs-arraylist/.
(5) What is the difference between LinkedList and ArrayList, and when to .... https://stackoverflow.com/questions/2677025/what-is-the-difference-between-linkedlist-and-arraylist-and-when-to-use-which-o.

Top comments (0)