Arraylist vs Vektör
Bir arraylist, boyut olarak büyüyebilen dinamik bir dizi olarak görülebilir. Bu nedenle, programlayıcının tanımladığı sırada arraylistin boyutunu bilmesi gerekmez. Vektör ayrıca boyut olarak büyüyebilen bir dizi olarak da görülebilir. Vektörler kolayca tahsis edilebilir ve çalışma süresine kadar gerekli depolama alanı boyutu bilinmediğinde kullanılabilir.
Arraylist nedir?
Bir arraylist, boyut olarak büyüyebilen dinamik bir dizi olarak görülebilir. Bu nedenle arraylistler, bildirim sırasında gereken öğelerin boyutunu bilmediğiniz durumlarda kullanılmak için idealdir. Java'da arraylistler yalnızca nesneleri tutabilir, ilkel türleri doğrudan tutamazlar (ilkel türleri bir nesnenin içine koyabilir veya ilkel türlerin sarma sınıflarını kullanabilirsiniz). Genellikle arraylistlere yerleştirme, silme ve arama yapma yöntemleri sağlanır. Bir elemana erişmenin zaman karmaşıklığı o (1) iken, ekleme ve silme o (n) zaman karmaşıklığına sahiptir. Java'da arraylistler, foreach döngüleri, yineleyiciler veya sadece dizinler kullanılarak gezilebilir. Java'da arraylistler 1.2 sürümünden tanıtıldı ve Java Collections Framework'ün bir parçası.
Vektör Nedir?
Vektör ayrıca boyut olarak büyüyebilen bir dizidir. Vektörler kolayca tahsis edilebilir ve çalışma süresine kadar gerekli depolama alanı boyutu bilinmediğinde kullanılabilir. Vektörler yalnızca nesneleri tutabilir ve ilkel türleri tutamaz. Vektörler senkronize edilir, bu nedenle çok iş parçacıklı ortamlarda güvenle kullanılabilir. Vektörlere nesne ekleme, nesne silme ve nesne arama yöntemleri sunulur. Java'daki arrayliste benzer şekilde vektörler, foreach döngüleri, yineleyiciler veya sadece indeksler kullanılarak geçilebilir. Java söz konusu olduğunda, Java'nın ilk sürümünden bu yana vektörler dahil edilmiştir.
Arraylist ve Vector arasındaki fark nedir?
Hem arraylistler hem de vektörler, boyut olarak büyüyebilen dinamik dizilere çok benzese de, bazı önemli farkları vardır. Arraylistler ve vektörler arasındaki temel fark, vektörlerin senkronize edilmişken arraylistlerin senkronize olmamış olmasıdır. Bu nedenle vektörler çok iş parçacıklı ortamlarda (iş parçacığı güvenli oldukları için) güvenle kullanılabilirken arraylistlerin çok iş parçacıklı ortamlarda kullanılması uygun olmayacaktır. Ancak vektörlerdeki senkronizasyon, performansta bir azalmaya neden olur. Bu nedenle vektörleri tek iş parçacıklı bir ortamda kullanmak iyi bir fikir olmaz. Dahili olarak, hem arististler hem de vektörler nesneleri tutmak için diziler kullanır. Geçerli alan yeterli olmadığında, vektörler dahili dizisinin boyutunu iki katına çıkarırken, diziciler dahili dizisinin boyutunu% 50 oranında artırır. Ancak, hem arististler hem de vektörler kullanılırken, uygun bir başlangıç kapasitesi verilerek, dahili dizinin gereksiz şekilde yeniden boyutlandırılması önlenebilir. Verilerin büyüme hızının bilindiği bir durumda, vektörlerin artımlı değeri tanımlanabileceğinden vektörlerin kullanılması daha uygun olacaktır..