Arraylist və Vektor Arasındakı Fərq

Arraylist və Vektor Arasındakı Fərq
Arraylist və Vektor Arasındakı Fərq

Video: Arraylist və Vektor Arasındakı Fərq

Video: Arraylist və Vektor Arasındakı Fərq
Video: SysTools SQL deşifrə vasitəsi | SQL Server verilənlər bazası obyektlərinin şifrəsini açın 2024, Iyul
Anonim

Arraylist vs Vektor

Arraylist ölçüdə böyüyə bilən dinamik massiv kimi görünə bilər. Bu səbəbdən proqramçı arraylist təyin edərkən onun ölçüsünü bilməyə ehtiyac duymur. Vektor həm də ölçüsündə böyüyə bilən massiv kimi görünə bilər. Vektorlar asanlıqla ayrıla bilər və yaddaşın tələb olunan ölçüsü icra müddətinə qədər məlum olmayanda istifadə edilə bilər.

Arraylist nədir?

Arraylist ölçüdə böyüyə bilən dinamik massiv kimi görünə bilər. Buna görə də, arraylistlər bəyannamə zamanı tələb olunan elementlərin ölçüsünü bilmədiyiniz vəziyyətdə istifadə etmək üçün idealdır. Java-da massiv siyahıları yalnız obyektləri saxlaya bilər, onlar birbaşa primitiv tipləri saxlaya bilməzlər (ibtidai tipləri obyektin içərisinə yerləşdirə və ya primitiv tiplərin sarğı siniflərindən istifadə edə bilərsiniz). Ümumiyyətlə arraylistlər daxiletmə, silmə və axtarışı yerinə yetirmək üçün üsullarla təmin edilir. Elementə daxil olmağın zaman mürəkkəbliyi o(1), daxil etmə və silmə isə o(n) zaman mürəkkəbliyinə malikdir. Java-da massiv siyahıları foreach döngələri, iteratorlar və ya sadəcə indekslərdən istifadə etməklə keçilə bilər. Java-da arraylistlər 1.2 versiyasından təqdim edilib və o, Java Kolleksiyaları Çərçivəsinin bir hissəsidir.

Vektor nədir?

Vektor həm də ölçüsündə böyüyə bilən massivdir. Vektorlar asanlıqla ayrıla bilər və yaddaşın tələb olunan ölçüsü icra müddətinə qədər məlum olmadıqda istifadə edilə bilər. Vektorlar da yalnız obyektləri saxlaya bilər və primitiv növləri saxlaya bilməz. Vektorlar sinxronlaşdırılır, buna görə də çox iş parçacığı mühitlərində təhlükəsiz istifadə edilə bilər. Vektorlar obyektləri əlavə etmək, obyektləri silmək və obyektləri axtarmaq üsulları ilə təmin edilir. Java-da arraylist kimi, vektorlar foreach döngələri, iteratorlar və ya sadəcə indekslərdən istifadə etməklə keçilə bilər. Javaya gəldikdə vektorlar Java-nın ilk versiyasından bəri daxil edilmişdir.

Arraylist və Vektor arasındakı fərq nədir?

Həm massiv siyahıları, həm də vektorlar ölçüsündə böyüyə bilən dinamik massivlərə çox oxşar olsalar da, onların bəzi mühüm fərqləri var. Massiv siyahıları ilə vektorlar arasındakı əsas fərq vektorların sinxronizasiyası, massiv siyahılarının isə sinxronizasiya edilməməsidir. Buna görə də çox yivli mühitlərdə massiv siyahılarından istifadə uyğun olmayacaq, vektorlar isə çoxillik mühitlərdə təhlükəsiz istifadə oluna bilər (çünki onlar iplik təhlükəsizdir). Lakin vektorlarda sinxronizasiya performansın azalmasına səbəb olardı. Buna görə də vektorları tək yivli mühitdə istifadə etmək yaxşı fikir deyil. Daxili olaraq həm massiv siyahıları, həm də vektorlar obyektləri saxlamaq üçün massivlərdən istifadə edirlər. Cari boşluq kifayət etmədikdə, vektorlar daxili massivinin ölçüsünü iki dəfə artıracaq, massiv siyahıları isə daxili massivinin ölçüsünü 50% artırır. Lakin həm massiv siyahılarından, həm də vektorlardan istifadə edərkən, uyğun başlanğıc tutumu verməklə, daxili massivin lazımsız ölçülərinin dəyişdirilməsinin qarşısını almaq olar. Məlumatların artım sürətinin məlum olduğu bir vəziyyətdə vektorların artım dəyəri müəyyən edilə bildiyi üçün vektorlardan istifadə daha uyğun olardı.

Tövsiyə: