1. Massivlər yaddaşda
Əvvəlki nümunələrdəki şəkillər bir az qeyri-dəqiq idi.
Massivlər yaradıldıqda (eləcə də sətirlər yaradıldıqda) yaddaşda iki blok ayrılır: biri massivi (konteyneri) saxlamaq üçün, digəri isə onun ünvanını saxlayan dəyişən üçün. Aşağıda təsvir edilən vəziyyət:
Yaşıl rəngdə int
tipli 10
elementdən ibarət bir massiv və yaddaşda int
tipli massiv ünvanını saxlayan int[]
tipli dəyişən göstərilir.
Müqayisə üçün mavi rəngdə 199
dəyərini saxlayan adi int
tipli dəyişən göstərilir.
Bu, bir az sətirlərin yaddaşda saxlanmasına bənzəyir, tapmırsınız?
Bəli, sətirlər. Və sətirlərlə işlədikcə, "massiv tipli dəyişənləri" bir-birinə təyin etmək mümkündür:
Kod | İzah |
---|---|
|
10 elementi olan int tipli massiv yaratmaq.İndeksi 2 olan xana 4 dəyərini yazır.İndeksi 7 olan xana 9 dəyərini yazır.b dəyişəninə a dəyişənində olan ünvanı saxlamaq.İndi a və b yaddaşda eyni obyekt-massivə işarə edir.Massiv obyektinin 9-cu xanasına 2-ci xanasında saxlanılan 4 və 7-ci xanasında saxlanılan 9 dəyərlərinin cəmini yazır. |
Bu zaman massiv obyekti olduğu yerdə qalacaq, lakin a
və b
dəyişənləri eyni ünvanları (istinadları) saxlayacaqlar. Şəkilə baxın:

2. Massivlərlə daha ətraflı iş
Massivi istənilən tipdən yaratmaq olar. Bunun üçün tipin adından sonra kvadrat mötərizələr yazmaq lazımdır. Massivin yaradılmasının ümumi görünüşü belədir:
tip[] ad = new tip[miqdar];
Burada tip — massivin elementi (xanası), yəni birtipli elementlər saxlanacaq, ad isə massivə müraciət edəcəyimiz dəyişənin adı, miqdar isə massivin xanası sayıdır.
Yuxarıda göstərilmiş nümunədə kanonik forma göstərilib: massiv dəyişəni və massiv obyekti yaradılır. Lakin əslində bunlar müstəqil konstruksiyalardır.
Massiv dəyişəni və massiv obyektini ayrı-ayrılıqda yaratmaq olar:
tip[] ad;
ad = new tip[miqdar];
Bir də vacib bir məqam:
Nümunələr:
Kod | İzah |
---|---|
|
n elementi ilə massiv yaratmaq |
|
203 elementdən ibarət massiv yaratmaq |
|
|
0..99
olmayan bütün tam ədədlərdir), proqram
ArrayIndexOutOfBoundsException
- indeks massivdən xaricdəsə səhv nəticəsində uğursuzluqla başa çatacaq.
3. Massivin uzunluğu
Əvvəlki nümunədə gördüyünüz kimi, massiv tipli dəyişəni ayrıca yarada və sonra ona haradasa kodda qiymət (obyekt-massiv üçün istinad) təyin edə bilərsiniz. Hətta bunu da etmək mümkündür:
Kod | İzah |
---|---|
|
int[] tipli massiv dəyişəni yaratmaq Əgər a dəyişəni 10 -dan kiçikdirsə,10 elementdən ibarət massiv yaratmaq.Yoxsa 20 elementdən ibarət massiv yarat |
Və belə massivlə necə işləmək olar? Necə bilmək olar, neçə elementi var?
Bunun üçün massivdə xüsusi bir xassə var – length
. Massivin uzunluğunu belə bir ifadə ilə öyrənmək olar:
array.length;
Burada array
- massiv dəyişənin adı, length
isə massiv obyektinin xassəsinin adıdır. length
xassəsinin dəyərini dəyişmək olmaz: length
xassəsini digər dəyişənlərə təyin etmək olar, lakin ona heç nə təyin edilə bilməz (proqram sadəcə tərtib olunmaz).
Əvvəlki nümunəni belə davam etdirmək olar:
Kod | İzah |
---|---|
|
int[] tipli massiv dəyişənini yaratmaq Əgər a dəyişəni 10 -dan kiçikdirsə,10 elementdən ibarət massiv yaratmaq.Yoxsa 20 elementdən ibarət massiv yaratMassivin bütün elementlərinin dövrü: 0 -dan array.length — 1 qədər |
4. Java-da massivlər haqqında faktları yekunlaşdırırıq
Massivlərlə bağlı məlum faktları yekunlaşdıraq:
Fakt 1. Massiv çox sayda xanalardan ibarətdir.
Fakt 2. Konkret xanaya çıxış onun nömrəsini göstərməklə əldə edilir.
Fakt 3. Bütün xanalarda eyni tip elementlər saxlanılır.
Fakt 4. Bütün xanalarda başlanğıc dəyər - 0 və null
(xanada ünvan saxlanılırsa), false
(tip boolean
üçün). Əsas dəyərlər haqqında daha çox bu mühazirədə öyrənəcəksiniz.
Fakt 5. String[] list
- bu sadəcə dəyişənin elanıdır: konteynerin özü(hələ massiv obyekti) yaradılmayıb. Onunla işləmək üçün əvvəlcə konteyneri yaratmaq və onu dəyişəndə saxlamalı, sonra isə ondan istifadə etmək lazımdır. Aşağıdakı nümunəyə baxın.
Fakt 6. Obyekt-massiv (konteyner) yaradaraq, onun uzunluğunu göstərmək lazımdır – neçə xana var. Bu, aşağıdakı komanda ilə edilir: new TypeName[n];
Fakt 7. Massivin uzunluğunu .length
xüsusiyyətindən bilmək olar.
Fakt 8. Massiv yarandıqdan sonra nə elementlərinin tipi, nə də onların sayı dəyişdirilə bilməz.
Kod | İzah |
---|---|
|
s null bərabərdirlist null bərabərdir |
|
list dəyişəni 10 elementdən ibarət sətirlərdən ibarət massiv obyektinin istinadını saxlayır.n 10 bərabərdir |
|
İndi |
|
İstisna (proqram xətası) yaradılacaq - proqram qəza ilə sona çatacaq. list boş istinaddır - null |
|
İstisna (proqram xətası) yaradılacaq - massivdən kənara çıxış. Əgər list 10 element/ xana saxlayırsa, onların icazə verilən indeksləri: 0 1 2 3 4 5 6 7 8 9 - cəmi 10 ədəd. |
GO TO FULL VERSION