Masivlər və Arraylistlər
Masivlər elementlər toplusunu saxlamaq üçün ən çox istifadə edilən məlumat strukturudur. Əksər proqramlaşdırma dilləri massivləri asanlıqla elan etmək və massivlərdəki elementlərə daxil olmaq üçün üsullar təqdim edir. 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.
Massivlər nədir?
Şəkil 1-də göstərilmişdir, adətən massivə dəyərləri elan etmək və təyin etmək üçün istifadə olunan kod parçasıdır. Şəkil 2 massivin yaddaşda necə görünəcəyini təsvir edir.
int dəyərlər[5]; dəyərlər[0]=100; dəyərlər[1]=101; dəyərlər[2]=102; dəyərlər[3]=103; dəyərlər[4]=104; |
Şəkil 1: Massiv üçün qiymətlərin elan edilməsi və təyin edilməsi üçün kod
100 | 101 | 102 | 103 | 104 |
İndeks: 0 | 1 | 2 | 3 | 4 |
Şəkil 2: Yaddaşda saxlanılan massiv
Yuxarıdakı kod, 5 tam ədəd saxlaya bilən massivi müəyyən edir və onlara 0-dan 4-ə qədər indekslərdən istifadə etməklə daxil olur. Massivin mühüm xüsusiyyəti ondan ibarətdir ki, bütün massiv bir yaddaş bloku kimi ayrılır və hər bir element öz dəyərini alır. massivdə öz sahəsi. Massiv müəyyən edildikdən sonra onun ölçüsü müəyyən edilir. Beləliklə, kompilyasiya zamanı massivin ölçüsünə əmin deyilsinizsə, təhlükəsiz tərəfdə olmaq üçün kifayət qədər böyük bir massiv təyin etməli olacaqsınız. Ancaq çox vaxt, biz ayırdığımızdan daha az sayda elementdən istifadə edəcəyik. Beləliklə, əhəmiyyətli miqdarda yaddaş əslində boşa çıxır. Digər tərəfdən, əgər “kifayət qədər böyük massiv” əslində kifayət qədər böyük deyilsə, proqram çökəcək.
Arraylistlər 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.
Massivlər və Arraylistlər arasındakı fərq nədir
Massivlər və massiv siyahıları hər ikisinin elementlərin kolleksiyalarını saxlamaq üçün istifadə olunması mənasında oxşar olsalar da, onlar necə təyin olunduğuna görə fərqlənirlər. Massiv müəyyən edildikdə massivin ölçüsü verilməlidir, lakin siz faktiki ölçüsü bilmədən massiv siyahısını təyin edə bilərsiniz. Siz arraylist müəyyən edildikdən sonra ona elementlər əlavə edə bilərsiniz və bu massivlərlə mümkün deyil. Lakin Java-da massiv siyahıları primitiv tipləri saxlaya bilməz, lakin massivlər primitiv tipləri saxlamaq üçün istifadə edilə bilər. Lakin ölçüsünü dəyişə bilən məlumat strukturuna ehtiyacınız varsa, arraylist ən yaxşı seçim olardı.