ArrayList ve Vektör Arasındaki Farklar Nelerdir?

arraylist ve vektor arasindaki farklar nelerdir

ArrayList ve vektörler dizinin elemanlarını depolar. Kullanıcıların birden fazla nesneyi depolamasına izin verirler. Veriler her ikisinde de dinamik olarak saklanır. Dizi listesi ve vektör java. util paketi üzerinde çalışır. Elemanların eklenmesi, elemanların çıkarılması, elemanların yinelenmesi, çoğaltılması veya null elemanlar gibi işlemlerin tedavisi oldukça benzerdir. Ancak farklı performans gösterdikleri alanları bilmek önemlidir.

Bunu okuyan okuyucular ayrıca şunları da okur:

ArrayList ve Vektör Arasındaki Farklar Nelerdir?

ArrayList ve Vector arasındaki temel fark, verileri depoladıkları ve işledikleri yolda yatmaktadır. Her iki yöntem de kullanıcıların bir dizi işlevi yerine getirmesini sağlar. Programcılar gereksinimlerine bağlı olarak ArrayList veya Vector kullanmayı tercih ederler. Biri senkronize iken diğeri senkronize değildir. Genişletilebilir kapasiteleri değişir. Kullanıcının en basitten daha karmaşık işlemlere kadar gerçekleştirmesine izin verirler.

ArrayList, kullanıcının dizinin boyutunda değişiklik yapmasına yardımcı olur. ArrayList, kullanıcının gereksinimine göre dizinin küçülmesini veya genişlemesini sağlar. Yerleşik diziler kullanıcının dizinin boyutunu değiştirmesine izin vermediğinden, yerleşik dizilerden farklıdır. ArrayList eşzamanlı olarak birden fazla iş parçacığı üzerinde çalışabilir.

Vektör java. util paketinde bulunur. Dinamik bir eleman dizisini destekler, bu da dizinin yeniden boyutlandırılabilir olduğu anlamına gelir. Vektörler eski sınıfa aittir. Vektörler iş parçacığı güvenli işlemler gerçekleştirir, bu da tek bir iş parçacığının bir seferde tek bir işlem gerçekleştirebileceği anlamına gelir ve bu da performanslarını yavaşlatma eğilimindedir.

ArrayList ve Vektör Arasındaki Karşılaştırma Tablosu

 

Karşılaştırma Parametreleri ArrayList Vektör
Senkronizasyon ArrayList Senkronize değildir, yani aynı anda çeşitli iş parçacıklarında çalışabilir. Vektör senkronize edilmiştir, yani bir anda yalnızca bir iş parçacığı kodu işleyebilir.
Hız Senkronize olmadıkları için işlemleri hızlıdır. Vektör işlemleri senkronize edildiklerinden daha yavaş çalışırlar.
Yeniden Boyutlandırma Elemanlar kapasitelerini aşarsa, ArrayList mevcut dizi boyutunun 50%’sini artırır. Eğer elemanlar kapasitelerini aşarsa, vektör mevcut dizi boyutunun 100%’si kadar artar.
Tercih Programcılar vektörler yerine ArrayList’i tercih eder. Vektörlerde senkronizasyon düşük performansa neden olduğu için daha az tercih edilir.
Çapraz geçiş (pass-through) Elemanları çaprazlamak için Iterator kullanır. Öğeleri dolaşmak için numaralandırmanın yanı sıra Iterator’ı da kullanabilir.

ArrayList nedir?

ArrayList değiştirilebilir bir dizidir. Java. util paketinde bulunur. Yerleşik diziden farklı bir işlevi vardır. Bir ArrayList’in oluşturulması, kullanıcı dahil edilecek verilerin boyutunu bilmediğinde yardımcı olur. ArrayList null veya void değerleri geçerli olarak kabul eder.

ArrayList, kullanıcıların eleman ekleme, eleman çıkarma, eleman değiştirme ve döngü işlemi gibi temel işlemleri gerçekleştirmesini sağlar.

ArrayList çoklu işlemleri destekler.

  1. Eleman eklemek için: Eleman eklemek için add() işlemini kullanın.
  2. Herhangi bir elemana erişmek için: Elemanlara get() seçeneği kullanılarak erişilebilir. Elemanlara sıfırdan başlayan bir indeksleyici kullanılarak erişilir.
  3. Bir elemanı değiştirmek için: Belirli bir elemanda değişiklik yapmak için set() işlemini kullanın.
  4. Elemanları kaldırmak için: Bu üç işlem Remove(), Removerange( , ) ve RemoveAt dizi listesindeki elemanları kaldırmak için kullanılır.
  5. ArrayList boyutuna göre çalıştırılır. Eleman eklenerek genişletilebilir ve eleman çıkarılarak küçültülebilir.

Aşağıdaki iki yöntem, Java ArrayList’te bir elemanın var olup olmadığını kontrol etmek için kullanılır.

  • contains()
  • indexOf()

 

arraylist ve vektor arasindaki farklar nelerdir
arraylist ve vektor arasindaki farklar nelerdir

Vektör nedir?

Vektör, senkronize edilmiş eski bir sınıf olarak kabul edilir. Bir seferde bir işlemi destekler. İşlem yapmak için birden fazla iş parçacığı gerekiyorsa, iki iş parçacığı aynı anda işlem yapamaz. Bu, bir iş parçacığı vektör üzerinde çalışırken diğer iş parçacığının beklemesi gerektiğinden düşük performansla sonuçlanır.

Vektörlerin iş parçacığı güvenli olduğu kabul edilir. İş parçacığı güvenliği, kullanıcılara tüm iş parçacıklarının uygun şekilde çalışmasını ve istenmeyen etkileşim olmadan tasarım kriterlerini karşılamasını sağlar.

Vektör, vektörün boyutunu genişleterek veya daraltarak elemanların eklenmesini veya silinmesini sağlar. Kullanıcının bir dizinin uzunluğu hakkında önceden bilgi sahibi olmadığı bazı durumlar olabilir. Bu gibi durumlarda vektörler kullanıcılara avantaj sağlar. Vektör, eklenecek eleman sayısı kapasitesini aşarsa %100 genişleyebilir.

Tıpkı ArrayList gibi Vector de kullanıcıların eleman ekleme, eleman çıkarma, eleman değiştirme ve döngü işlemi gibi temel işlemleri gerçekleştirmesini sağlar.

  1. Eleman eklemek için: Eleman eklemek için add() işlemini kullanın.
  2. Elemanları değiştirmek için: Elemanları değiştirmek için set() işlemini kullanın. Vektörlerdeki elemanlar indekslerine göre atfedilir.
  3. Elemanları kaldırmak için: Vektörden eleman çıkarmak için remove() metodunu kullanın.
    Vektör, belirtilen temel işlemlerin dışında diğer simpleks işlemleri de destekler.

ArrayList ve Vektör Arasındaki Temel Farklar

  1. ArrayList ve vector, dahil edilmesi gereken eleman sayısına bağlı olarak küçültülebilir veya genişletilebilir. Ancak yeniden boyutlandırılabilirlik kapasiteleri farklıdır. ArrayList, vektörlerin yalnızca yarısı kadar genişleyebilir.
  2. ArrayList, iki farklı iş parçacığı ilgili işlemleri aynı anda gerçekleştirebildiğinden kullanıcılara üstün performans sağlar. Öte yandan, vektörlerde belirli bir zamanda yalnızca tek bir iş parçacığı çalışabilir. Bir vektörde iki iş parçacığı varsa, diğer iş parçacığı işlemini gerçekleştirirken bir iş parçacığının beklemesi gerekir.
  3. ArrayList varsayılan olarak senkronize değildir. Ancak kullanıcılar gerekli işlemi gerçekleştirerek senkronize etmeyi seçebilirler. Vektör işlemleri ise varsayılan olarak senkronize edilir ve değiştirilemez.
  4. Vektör işlemleri thread-safe iken ArrayList işlemleri thread-safe değildir.
  5. ArrayList bir koleksiyon sınıfı iken vector bir eski sınıftır.

Sonuç

ArrayList ve vektörün her ikisi de kullanıcıların birden fazla işlem yapmasına olanak tanır. ArrayList daha kısa bir zaman diliminde üstün performans sağladığı için daha iyi olarak kabul edilir. Vektörler, kullanıcılar bir diziye eklenecek verilerin uzunluğunu bilmediğinde küçük bir avantaja sahiptir. Programcılar gereksinimlerine göre herhangi bir yöntemi kullanabilirler.

Referanslar

  1. https://dl.acm.org/doi/abs/10.1145/1044550.1041666
  2. https://dl.acm.org/doi/abs/10.1145/3394451.3397204

 

Site Footer

What is the Differencess