Java'da ArrayList ile Vector Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 1 Mayıs Ayı 2024
Anonim
Java'da ArrayList ile Vector Arasındaki Fark - Teknoloji
Java'da ArrayList ile Vector Arasındaki Fark - Teknoloji

İçerik


ArrayList ve Vector, Collection Framework hiyerarşisi altındaki sınıflardır. ArrayList ve Vector, her ikisi de, gerektiğinde ve gerektiğinde boyutta büyüyebilecekleri dinamik bir nesne dizisi oluşturmak için kullanılır. ArrayList ve Vector'i birbirinden ayıran iki temel fark vardır; Vector, Vector öğesinin daha sonra koleksiyon sınıflarını desteklemek için yeniden yapılandırılmış olan Legacy sınıflarına ait olduğu halde ArrayList standart bir koleksiyon sınıfıdır. Diğer bir önemli fark ise, ArrayList'in diğer yandan senkronize olmamasıdır; Vektör senkronize edildi.

Aşağıda gösterilen Karşılaştırma Tablosu yardımıyla diğer bazı farklılıkları da inceleyelim.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. benzerlikler
  5. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelArrayListVektör
TemelArrayList sınıfı Senkronize edilmedi.Vektör sınıfı senkronize edildi.
Eski sınıfArrayList standart bir Koleksiyon sınıfıdır.Vector, koleksiyon sınıfını desteklemek için yeniden tasarlanmış eski bir sınıftır.
Sınıf Beyanısınıf ArrayListsınıf vektör
Yeniden tahsisBelirtilmediğinde, bir ArrayList boyutunun yarısı kadar artırılır.Belirtilmediğinde, bir vektör boyutunu iki katına çıkarmak için artırılır.
performansArrayList senkronize edilmediğinden, Vector öğesinden daha hızlı çalışır.Vector senkronize edildiğinde ArrayList'ten daha yavaş çalışır.
Sayım / YineleyiciArrayList, ArrayList'te depolanan nesneleri dolaşmak için Iterator arabirimini kullanır.Vektör, Numaralandırma'da, Vektörler'de depolanan nesneleri dolaşmak için Yineleyici arabirimini kullanır.


ArrayList'un tanımı

ArrayList, standart koleksiyon sınıfları listesine aittir. ArrayList sınıfı, içinde tanımlanır. java.util paket, uzatır AbstractList Aynı zamanda standart bir koleksiyon sınıfı olan ve ayrıca uygulayan sınıf ListeKoleksiyon Arayüzlerinde tanımlanan bir arayüz. Java'da standart bir dizi daima sabit uzunluktadır. Bu bir zamanlar yaratılmış demektir; dinamik olarak büyümez veya küçülmez. Bu nedenle, kullandığınız dizinin uzunluğunun önceden bilinmesi gerekir. Ancak, bazen gerekli uzunlukların çalışma zamanında ortaya çıkması olabilir, bu nedenle java ArrayList'i tanıttı.

ArrayList, nesnelere referansları tutan bir dizinin dinamik oluşturulması için kullanılan bir sınıftır. Bu dizi gerektiğinde ve gerektiğinde boyutta büyüyebilir. Sınıf beyanı aşağıdaki gibidir:

sınıf ArrayList

Burada, E bir dizinin tutacağı nesnelerin tipini belirtir. Oluşturulan dizi değişken uzunluktadır ve nesneler listeye eklendiğinde veya çıkarıldığında boyut olarak artar ve azalır.


ArrayList, eşitlenmez; bu, dizide aynı anda birden fazla iş parçacığının çalışabileceği anlamına gelir. Örneğin, bir iş parçacığı diziye bir nesne başvurusu ekliyorsa ve başka bir iş parçacığı aynı anda aynı diziden bir nesne başvurusunu kaldırıyorsa. ArrayList sınıfını kullanarak dinamik bir dizi oluşturulması:

ArrayList S1 = yeni ArrayList(); System.out.ln ("İlk boyut S1:" + S1.size ()); S1.add ( "T"); S1.add ( "C"); S1.add ( "H"); S1.add (1, "E"); System.out.ln ("S1 eklendikten sonra:" + S1); System.out.ln ("Eklemeden sonra S1 boyutu:" + S1.size ()); S1.remove ("T"); S1.remove (2); System.out.ln ("S1 silindikten sonra şunları içerir:" + S1); System.out.ln ("Silme işleminden sonra S1 boyutu:" + S1.size ()); // Çıkış S1'in ilk boyutu: 0 S1 eklendikten sonra şunları içerir:; Eklemeden sonra S1 boyutu: 4 Silme işleminden sonra S1 içeriği: Silme işleminden sonra S1 boyutu: 2

Yukarıdaki kodda, bunu görebilirsiniz; String türünde bir dizi nesne yarattım. Add () yöntemini kullanarak S1 dizisine bazı nesneler ekledim ve daha sonra remove () yöntemini kullanarak bazı nesneleri sildim. Dizinin başlangıç ​​büyüklüğünü '0' olacak şekilde belirlemediyseniz gözlemleyebilirsiniz. Gördüğünüz gibi, dizi büyür ve öğeleri ekleyip sildikçe boyut küçülür.

Vektörün Tanımı

Vector, Collection Framework hiyerarşisindeki koleksiyon sınıfını desteklemek için yeniden yapılandırılmış bir Legacy sınıfıdır. Vektör sınıfı ayrıca şu şekilde tanımlanır: java.util paket tarafından genişletildi AbstractList sınıf ve uygulanan Liste arabirimi. Vector sınıfı aşağıdaki şekilde bildirilir:

sınıf vektör

Burada, E bir dizide depolanacak nesne tipini tanımlar. Vector sınıfı kullanılarak oluşturulan bir dizi değişken uzunluktadır. Artış belirtilmezse, boyutunun iki katına çıkar. Vector kullanarak dizi oluşumunu anlayalım.

Vektör V = yeni Vektör(1,1); V.addElement ( "Tek"); V.addElement ( "farklar"); System.out.ln ("2 eklemeden sonra kapasite:" + V.capacity ()); ( "Arasında") V.addElement; V.addElement ( "Vektörler"); System.out.ln ("Geçerli kapasite:" + V.capacity ()); // 2 eklemeden sonra Çıkış Kapasitesi: 2 Akım kapasitesi: 4

Yukarıdaki kodda, string'in dizisini bildirirken, sırasıyla Vector'in yapıcısındaki boyut ve artış değerinden bahsettiğimi görebilirsiniz. Bu nedenle, dizi sınırı sona erdiğinde, bildirim sırasında yapıcıya sağlanan değerin arttığını gözlemleyebilirsiniz.

  1. ArrayList'te birden fazla iş parçacığı aynı anda çalışabilir; eşitlenmemiş. ArrayList'ten farklı olarak, bir seferde bir vektör üzerinde yalnızca tek bir iplik çalışabilir; bu yüzden denir Senkronize.
  2. Java'nın ilk sürümlerinde, bazı sınıflar ve arayüzler, kendilerine Legacy sınıfları Vector denilen nesneleri depolamak için yöntemler sağlardı. Daha sonra, bu eski sınıflar Koleksiyon sınıfını desteklemek için yeniden yapılandırılmış, oysa ArrayList sınıfı standart bir Koleksiyon Sınıfıdır.
  3. Bir dizinin limiti tamamen kullanıldığında ve bitkin dizinin yanına yeni bir nesne eklendiğinde, boyutu hem durumlarda hem ArrayList'te hem de Vector'de büyür, ancak fark belirtilmemişse ArrayList'teki fark artar. geçerli dizinin% 50'si tarafından artırılır, oysa, eğer artış değeri belirtilmezse Vector dizisinde boyut ikiye katlanır.
  4. Vector, bir diziyi geçmek için Numaralandırmanın yanı sıra yineleyiciyi kullanır, oysa ArrayList yalnızca bir diziyi geçmek için yineleyiciyi kullanır.
  5. ArrayList Eşitlenmemiş olduğundan ve birçok iş parçacığı aynı anda çalışabildiğinden, performansı aynı anda yalnızca bir iş parçacığının çalışabileceği Vektör'ten daha iyidir.

benzerlikler:

  1. ArrayList ve Vector, java.util paketinde tanımlanmıştır.
  2. ArrayList ve Vector, her ikisi de AbsractList sınıfını genişletir.
  3. ArrayList ve Vector, her ikisi de Liste arabirimini uygular.
  4. ArrayList ve Vektörler, gerektiği şekilde büyüyen dinamik bir dizi oluşturmak için kullanılır.
  5. ArrayList ve Vector, nesne başvurularını tutar.

Sonuç:

ArrayList'in kullanımının Vector öğesini kullanmaktan daha hızlı ve daha iyi bir performans sergilediğinden daha iyi olduğunu söyleyerek sonuca varıyorum.