Toplumlar
Bir massiw, şol bir görnüşdäki bahalary saklaýan maglumat gurluşydyr. Aýry-aýry massiw elementlerine bitewi görkeziji ulanylýar. Mysal üçin, eger bitewi sanlar toplumy bolsa, onda [i] aňlatmanyň bahasy massiwdäki i-nji bitewi san bilen deňdir.
Bir massiw aşakdaky ýaly yglan edilýär: ilki bilen, massiwiň görnüşi görkezilýär, ýagny massiwdäki elementleriň görnüşi, soň bir jübüt boş kwadrat ýaý, soň bolsa üýtgeýjiniň ady görkezilýär. Mysal üçin, bitewi sanlardan ybarat bir massiwi nädip yglan etmeli:
int[] a;
а
Şeýle-de bolsa, bu jümle diňe hakyky massiw bilen başlamazdan üýtgeýjini yglan edýär . Bir massiw döretmek üçin operatory ulanmaly
new
.
int[] a = new int [100];
Bu operator 100 sany bitewi san döredýär. Bu massiwiň elementleri 0-dan 99-a çenli (1-den 100-e çenli däl) sanlanýar. Döredilenden soň, massiw, mysal üçin, aýlaw ulanyp doldurylyp bilner.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
a[i] = i;
а [100]
100 elementden ybarat bir massiw döredip, bir elemente (ýa-da indeksi 0 bilen 99 aralygyndaky başga bir elemente) girmäge synanyşsaňyz , programma bes ediler, sebäbi aralyk kadadan çykma massiw görkezijisi ýüze çykar. Bir massiwdäki elementleriň sanyny sanamak üçin, Array ady usulyny ulanyň
.length
. Mysal üçin,
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
Bir massiw döredilenden soň, onuň ululygyny üýtgetmek mümkin däl (elbetde, aýry-aýry elementlerini üýtgedip bilersiňiz). Programma ýerine ýetirilende ýygy-ýygydan bir massiwiň ululygyny üýtgetmeli bolsaňyz, massiw sanawy diýilýän başga bir maglumat gurluşyny ulanmak has gowudyr. Bir massiw iki görnüşde yglan edilip bilner:
int[] a;
or
int a[];
int []
Java programmaçylarynyň köpüsi birinji stili halaýarlar, sebäbi massiw görnüşini (bitewi massiw) üýtgeýän adyndan has aýdyňlaşdyrýar .
Array başlangyçlary we ady aýdylmadyk massiwler
Java-da bir wagtyň özünde bir massiw döretmek we başlamak üçin desga bar. Ine, şeýle sintaktik gurluşyň mysaly:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
Bu ýagdaýda operatory ulanmagyň zerurlygynyň ýokdugyna üns beriň
new
. Mundan başga-da, ady agzalmadyk massiwi başlap bilersiňiz:
new int[] {16, 19, 23, 29, 31, 37}
Bu aňlatma täze massiw üçin ýady bölýär we egri ýaýlarda görkezilen sanlar bilen doldurýar. Bu ýagdaýda olaryň sany hasaplanýar we şoňa görä massiwiň ululygy kesgitlenýär. Bu sintaktik gurluşyk, täze üýtgeýjini döretmän bir massiwi täzeden başlamak üçin ulanmak üçin amatly. Mysal üçin, aňlatma
smallPrimes = new int{17, 19, 23, 29, 31, 37};
gysgaldylan aňlatma
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
Nol ululykdaky massiw döredip bilersiňiz. Şeýle massiw, boş bolup çykýan bir massiw bahalandyrýan usul ýazylanda peýdaly bolup biler. Nol uzynlykdaky massiw aşakdaky ýaly yglan edilýär:
new тип Элементов[]
Şeýle massiwiň bir obýekte deň däldigine üns beriň
null
.
Toplumlary göçürmek
Bir massiw beýlekisine göçürilip bilner, ýöne iki üýtgeýji şol bir massiwde görkeziler.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12;
Netije suratda görkezilýär. 3.1. Bir massiwiň ähli elementlerini beýlekisine göçürmek zerur bolsa, synpdan massiw usulyny ulanmaly
System
. Çagyryşy şeýle:
System.arraycopy(from, fromlndex, to, tolndex, count);
Bu massiw
to
göçürilmeli ähli elementleri öz içine alýan derejede uly bolmaly.
3-nji surat. Bir massiw göçürmek
Mysal üçin, netijeleri aşakda görkezilen operatorlar, netijeleri suratda görkezilýär. 3.2, iki massiw dörediň we birinji massiwiň soňky dört elementini ikinjisine göçüriň. Göçürmek çeşme massiwindäki ikinji pozisiýadan başlaýar we göçürilen elementler üçünji ýerden başlap maksat massiwine ýerleşdirilýär.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аrrаусору(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.out.println(i + ": " + luckyNumbers[i]);
Bu jümleleri ýerine ýetirmek aşakdaky netijäni berýär.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
Tüwi. 3.2. Array elementlerini göçürmek
Java-daky bir massiw, C ++ massiwinden ep-esli tapawutlanýar. Şeýle-de bolsa, dinamiki massiwiň görkezijisi bilen diýen ýaly deňdir. Bu operatoryň diýmekdir
int[] a = new int[100];
operatoryna deňdir
int* = new int[100];
а не
int a[100];
Java-da
[]
deslapky operator indeks üýtgemeleriniň diapazonyny barlaýar. Mundan başga-da, Java-da görkeziji arifmetikasy ýok - massiwiň indiki elementine girmek üçin görkezijini artdyryp bilmersiňiz.
Çeşmä baglanyşyk: Java massiwleri
GO TO FULL VERSION