Anahtar Farkı – ArrayList ve LinkedList
Koleksiyonlar veri depolamak için kullanışlıdır. Normal bir dizide dizi boyutu sabittir. Bazen gerektiğinde büyüyebilen diziler oluşturmak gerekir. Java gibi programlama dillerinin koleksiyonları vardır. Bir dizi sınıf ve arayüz içeren bir çerçevedir. Bir grup eleman için bir kap görevi görür. Koleksiyonlar, öğe kümesini depolamaya, güncellemeye ve almaya izin verir. Listeler, kümeler, ağaçlar ve haritalar gibi veri yapıları ile çalışmaya yardımcı olur. Liste, Koleksiyon çerçevesinin bir arayüzüdür. ArrayList ve LinkedList, koleksiyon çerçevesindeki iki sınıftır. Koleksiyon arayüzünü ve Liste arayüzünü uygularlar. Bu makalede ArrayList ve LinkedList arasındaki fark anlatılmaktadır. ArrayList, AbstractList'i genişleten ve veri öğelerini depolamak için dahili olarak dinamik bir dizi kullanan List arabirimini uygulayan bir sınıftır. LinkedList, AbstractSequentialList'i genişleten ve veri öğelerini depolamak için dahili olarak çift bağlantılı bir liste kullanan List, Deque ve Queue arabirimlerini uygulayan bir sınıftır. ArrayList ve LinkedList arasındaki temel fark budur.
ArrayList nedir?
ArrayList sınıfı, dinamik diziler oluşturmak için kullanılır. Normal bir dizinin aksine, dinamik bir dizinin boyutu sabit değildir. ArrayList sınıfı kullanılarak oluşturulan bir nesnenin listede bir dizi öğe saklamasına izin verilir. Kapasite otomatik olarak artar, böylece programcı listeye eleman ekleyebilir. ArrayList sınıfı, List arabirimini uygulayan AbstractList sınıfını genişletir. Bu nedenle, List arabiriminin yöntemleri ArrayList tarafından kullanılabilir. Öğelere erişmek için get() yöntemi kullanılır. Add() yöntemi, listeye öğe eklemek için kullanılabilir. Remove() yöntemi, bir öğeyi listeden çıkarmak için kullanılır. Aşağıdaki programa bakın.
Şekil 01: ArrayList Örneği
Yukarıdaki programa göre ArrayList'in bir nesnesi oluşturulur. Add metodu kullanılarak elemanlar dinamik olarak eklenebilir. "A", "B", "C", "D" ve "E" öğeleri, ekleme yöntemi kullanılarak eklenir. Remove yöntemi, bir öğeyi listeden çıkarmak için kullanılır. Kaldırma yöntemine 4'ü geçerken 4. dizindeki “E” harfi listeden çıkarılır. For döngüsünü kullanarak listeyi yinelerken, A, B, C ve D harfleri yazdırılacaktır.
LinkedList nedir?
ArrayList'e benzer şekilde LinkedList, veri öğelerini dinamik olarak depolamak için kullanılır. LinkedList sınıfı kullanılarak oluşturulan bir nesnenin listede bir dizi öğe saklamasına izin verilir. Kapasite otomatik olarak artar, böylece programcı listeye eleman ekleyebilir. Verileri depolamak için dahili olarak çift bağlantılı liste kullanır. Çift bağlantılı bir listede, veriler düğümler olarak depolanır. Her düğüm iki bağlantı içerir. İlk bağlantı önceki düğüme işaret eder. Sonraki bağlantı, sıradaki bir sonraki düğüme işaret eder.
LinkedList sınıfı, AbstractSequentialList sınıfını genişletir ve List arabirimini uygular. Bu nedenle List arabiriminin yöntemleri LinkedList tarafından kullanılabilir. Listenin öğelerine erişmek için get() yöntemi kullanılabilir. Add() yöntemi, listeye öğe eklemek için kullanılabilir. Remove() yöntemi, bir öğeyi listeden çıkarmak için kullanılır. Aşağıdaki programa bakın.
Şekil 02: LinkedList ile Örnek
Yukarıdaki programa göre LinkedList'in bir nesnesi oluşturulur. Add metodu kullanılarak elemanlar dinamik olarak eklenebilir. "A", "B", "C", "D" ve "E" öğeleri, ekleme yöntemi kullanılarak eklenir. Remove yöntemi, bir öğeyi listeden çıkarmak için kullanılır. Kaldırma yöntemine 4'ü geçerken 4. dizindeki “E” harfi listeden çıkar. For döngüsü kullanılarak yinelenirken A, B, C ve D harfleri yazdırılır.
ArrayList ve LinkedList Arasındaki Benzerlikler Nelerdir?
- ArrayList ve LinkedList, List arayüzünü uygular.
- ArrayList ve LinkedList, yinelenen öğeler içerebilir.
- ArrayList ve LinkedList, ekleme sırasını korur.
ArrayList ve LinkedList Arasındaki Fark Nedir?
ArrayList vs LinkedList |
|
ArrayList, AbstractList'i genişleten ve veri öğelerini depolamak için dahili olarak dinamik bir dizi kullanan List arabirimini uygulayan bir sınıftır. | LinkedList, AbstractSequentialList'i genişleten ve veri öğelerini depolamak için dahili olarak çift bağlantılı bir liste kullanan List, Deque, Queue arabirimlerini uygulayan bir sınıftır. |
Öğelere Erişim | |
ArrayList öğelerine erişim, LinkedList'ten daha hızlıdır. | LinkedList öğelerine erişim, ArrayList'ten daha yavaştır. |
Öğeleri Yönetme | |
ArrayList öğelerini işlemek LinkedList'e göre daha yavaştır. | LinkedList öğelerini işlemek, ArrayList'ten daha hızlıdır. |
Davranış | |
ArrayList, Liste olarak çalışır. | LinkedList, Liste ve Kuyruk olarak çalışır. |
Özet – ArrayList ve LinkedList
Koleksiyon çerçevesi, listeler, ağaçlar, haritalar ve kümeler gibi veri yapılarıyla çalışmayı sağlar. Liste, toplama çerçevesinin bir arayüzüdür. Bu makale ArrayList ve LinkedList arasındaki farkı tartıştı. ArrayList, AbstractList'i genişleten ve veri öğelerini depolamak için dahili olarak dinamik bir dizi kullanan List arabirimini uygulayan bir sınıftır. LinkedList, AbstractSequentialList'i genişleten ve veri öğelerini depolamak için dahili olarak çift bağlantılı bir liste kullanan List, Deque, Queue arabirimlerini uygulayan bir sınıftır. ArrayList ve LinkedList arasındaki fark budur.