JavaRush /Блоги Java /Random-TG /Массивҳои Java
articles
Сатҳи

Массивҳои Java

Дар гурӯҳ нашр шудааст

Массивҳо

Массив сохтори додаест, ки арзишҳои як навъро нигоҳ медорад. Ба унсури массиви инфиродӣ бо истифода аз индекси бутун дастрас карда мешавад. Масалан, агар a массиви ададҳои бутун бошад, он гоҳ арзиши ифодаи a[i] ба адади i-уми массив баробар аст. Массивҳои Java - 1Массив ба таври зайл эълон карда мешавад: аввал намуди массив, яъне навъи элементхои дар массив мавчудбуда, пас аз он як ҷуфт қавсаи квадратии холӣ ва баъд номи тағирёбанда нишон дода мешавад. Масалан, дар ин ҷо тарзи эълон кардани массив, ки аз ададҳои бутун иборат аст:
int[] a;
Аммо, ин изҳорот танҳо як тағирёбандаро абидуни оғоз кардани он бо массиви воқеӣ эълон мекунад. Барои сохтани массив, шумо бояд операторро истифода баред new.
int[] a = new int [100];
Ин оператор массиви 100 ададро месозад. Элементҳои ин массив аз 0 то 99 рақамгузорӣ карда мешаванд (на аз 1 то 100). Пас аз эҷод, массивро метавон пур кард, масалан, бо истифода аз ҳалқа.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
 a[i] = i; //Заполняет массив числами от 0 до 99
Агар шумо кӯшиш кунед, ки ба элементе а [100](ё ягон унсури дигаре, ки шохиси он берун аз диапазони 0 то 99 аст) тавассути сохтани массиви аз 100 элемент дастрас шавед, барнома қатъ мешавад, зеро индекси массиви берун аз диапазон истисно ба амал меояд. Барои ҳисоб кардани шумораи элементҳои массив, усули номи массивро истифода баред .length. Барои намуна,
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
Вақте ки массив сохта мешавад, андозаи онро тағир додан ғайриимкон аст (гарчанде ки шумо метавонед, албатта, унсурҳои алоҳидаи онро тағир диҳед). Агар ҳангоми иҷрои барнома ба шумо андозаи массив зуд-зуд тағир дода шавад, беҳтар аст, ки сохтори дигари маълумотро, ки рӯйхати массив ном дорад, истифода баред. Массивро бо ду роҳ эълон кардан мумкин аст:
int[] a;
or
int a[];
int []Аксари барномасозони Java услуби якумро афзалтар медонанд, зеро он навъи массивро (массиви бутун) аз номи тағирёбанда равшантар ҷудо мекунад .

Интициализаторҳои массив ва массивҳои номнашуда

Java дорои имкониятест, ки ҳамзамон массив эҷод кунад ва онро оғоз кунад. Намунаи чунин сохтори синтаксисӣ:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
Дар хотир доред, ки дар ин ҳолат зарурати истифодаи оператор вуҷуд надорад new. Илова бар ин, шумо ҳатто метавонед массиви беномро оғоз кунед:
new int[] {16, 19, 23, 29, 31, 37}
Ин ифода хотираро барои массиви нав ҷудо мекунад ва онро бо рақамҳои дар қавсҳои ҷингила нишондодашуда пур мекунад. Дар ин ҳолат шумораи онҳо ҳисоб карда мешавад ва мувофиқан андозаи массив муайян карда мешавад. Ин сохти синтаксисӣ барои аз нав оғоз кардани массив бидуни эҷоди тағирёбандаи нав қулай аст. Масалан, ифода
smallPrimes = new int{17, 19, 23, 29, 31, 37};
ифодаи мухтасар аст
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
Шумо метавонед массиви андозаи сифр эҷод кунед. Чунин массив метавонад ҳангоми навиштани усуле муфид бошад, ки массиверо, ки холӣ мешавад, арзёбӣ мекунад. Массиви дарозии сифр ба таври зерин эълон карда мешавад:
new тип Элементов[]
Дар хотир доред, ки чунин массив ба an object баробар нест null.

Нусхабардории массивҳо

Як массивро ба дигараш нусхабардорӣ кардан мумкин аст, аммо ҳарду тағирёбанда ба як массив ишора мекунанд.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12; //Теперь элемент smallPrimes[5]также equals 12
Натиҷа дар расм нишон дода шудааст. 3.1. Агар ба шумо лозим ояд, ки ҳамаи элементҳои як массивро ба дигараш нусхабардорӣ кунед, шумо бояд усули arraycopy аз синфро истифода баред System. Даъвати он чунин менамояд:
System.arraycopy(from, fromlndex, to, tolndex, count);
Массив toбояд ба қадри кофӣ калон бошад, ки ҳамаи элементҳои нусхабардориро дар бар гирад. Массивҳои Java - 2
Расми 3.1. Нусхабардории массив
Масалан, операторҳое, ки дар зер нишон дода шудаанд, натиҷаҳои онҳо дар расми 6 нишон дода шудаанд. 3.2, ду массив эҷод кунед ва сипас чаҳор унсури охирини массиви якумро ба дуюм нусхабардорӣ кунед. Нусхабардорӣ аз мавқеи дуюм дар массиви манбаъ оғоз мешавад ва унсурҳои нусхабардорӣ аз мавқеи сеюм дар массиви таъинот ҷойгир карда мешаванд.
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]);
Иҷрои ин изҳорот натиҷаи зеринро медиҳад.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
Массивҳои Java - 3
Райс. 3.2. Нусхабардории элементҳои массив
Массив дар Java аз массив дар C++ ба таври назаррас фарқ мекунад. Бо вуҷуди ин, он амалан ба нишондиҳандаи массиви динамикӣ монанд аст. Ин маънои онро дорад, ки оператор
int[] a = new int[100]; //Java
ба оператор баробар аст
int* = new int[100]; //C++,
а не
int a[100]; //C++
Дар Java, []оператори пешфарз диапазони тағирёбии индексро тафтиш мекунад. Илова бар ин, Java арифметикаи нишондиҳанда надорад - шумо наметавонед нишондиҳандаро барои дастрасӣ ба элементи навбатии массив зиёд кунед. Истинод ба манбаъ: массивҳои Java
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION