Aşağıda gösterilen Karşılaştırma Tablosu yardımıyla diğer bazı farklılıkları da inceleyelim.
Karşılaştırma Tablosu
Karşılaştırma için temel | ArrayList | Vektör |
---|---|---|
Temel | ArrayList sınıfı Senkronize edilmedi. | Vektör sınıfı senkronize edildi. |
Eski sınıf | ArrayList 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 ArrayList | sınıf vektör |
Yeniden tahsis | Belirtilmediğ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. |
performans | ArrayList senkronize edilmediğinden, Vector öğesinden daha hızlı çalışır. | Vector senkronize edildiğinde ArrayList'ten daha yavaş çalışır. |
Sayım / Iterator | ArrayList, ArrayList'te depolanan nesneleri dolaşmak için Iterator arabirimini kullanır. | Vector, Vektörler'de depolanan nesneleri geçiş yapmak için Numaralandırma ve Yineleyici arabirimini kullanır. |
ArrayList'un tanımı
ArrayList, standart koleksiyon sınıfları listesine aittir. ArrayList sınıfı, java.util paketinde tanımlanır, aynı zamanda standart bir koleksiyon sınıfı olan AbstractList sınıfını genişletir ve ayrıca Koleksiyon Arabirimleri'nde tanımlanan bir arabirim olan List'i de uygular. 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 yüzden 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ğı nesne 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 = new ArrayList (); System.out.println ("İlk S1 boyutu:" + S1.size ()); S1.add ( "T"); S1.add ( "C"); S1.add ( "H"); S1.add (1, "E"); System.out.println ("S1 eklendikten sonra:" + S1); System.out.println ("Eklemeden sonra S1 boyutu:" + S1.size ()); S1.remove ("T"); S1.remove (2); System.out.println ("S1 silindikten sonra şunları içerir:" + S1); System.out.println ("Silme işleminden sonra S1 boyutu:" + S1.size ()); // Çıkış S1'in ilk boyutu: 0 S1 ilavesinden sonra: [T, E, C, H]; Eklemeden sonra S1'in boyutu: 4 Silme işleminden sonra S1 şunları içerir: [E, H] 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 ilk boyutunu '0' olacak şekilde belirlemediyseniz gözlemleyebilirsiniz. Gördüğünüz gibi dizi büyüdükçe 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. Vector sınıfı ayrıca, java.util paketinde tanımlanır, AbstractList sınıfı tarafından genişletilir ve Liste arayüzü tarafından uygulanır. 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ım 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.println ("2 eklemeden sonra kapasite:" + V.capacity ()); ( "Arasında") V.addElement; V.addElement ( "Vektörler"); System.out.println ("Mevcut 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 büyüklük 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.
ArrayList ve Vector Arasındaki Temel Farklılıklar
- ArrayList'te birden fazla iş parçacığı aynı anda çalışabilir, bu nedenle eşitlenmemiş sayılır. ArrayList'ten farklı olarak, bir seferde bir vektör üzerinde yalnızca tek bir iplik çalışabilir; Bu nedenle senkronize denir.
- Java'nın ilk sürümlerinde, bazı sınıflar ve arayüzler, kendilerine Legacy sınıfları Vector olarak adlandırılan 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.
- 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, eğer ArrayList'te, eğer boyut belirtilmezse geçerli dizinin% 50'si tarafından artırılır, oysa, artış değeri belirtilmezse Vector dizisinde boyut ikiye katlanır.
- 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.
- 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:
- ArrayList ve Vector, java.util paketinde tanımlanmıştır.
- ArrayList ve Vector, her ikisi de AbsractList sınıfını genişletir.
- ArrayList ve Vector, her ikisi de Liste arabirimini uygular.
- ArrayList ve Vektörler, gerektiği şekilde büyüyen dinamik bir dizi oluşturmak için kullanılır.
- 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.