9-Lekciya
.pdfMassivler. Massivler menen islew.
Joba:
1.Massivler;
2.Massivler menen islew;
3.Massivti inicializaciyalaw;
4.Mısallar;
5.Bir ólshemli massivlerdi metodlarǵa uzatıw;
6.Metodlardan massivlerdi qaytarıw
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivler
Qandayda bir kameradaǵı yamasa xanadaǵı birneshe yacheykalardı kóz aldıńızǵa keltiriń. Hár bir yacheyka nomerlengen bolıp, olarda qandayda bir obyekt saqlanadı. Sizde bul obyektlerdiń dizimi bar bolıp, ózińizge kerekli obyektti yacheyka nomeri arqalı ańsat tawıp alasız.
Basqa bir mısal, samolyot passajirleri dizimin kóz aldıńızǵa keltiriń.
Yaǵnıy, hár bir passajirdiń óziniń orın nomeri boladı. Javada joqarıdaǵılarǵa uqsas maǵlıwmatlar, yaǵnıy birdey tiptegi maǵlıwmatlar kópligi menen jumıs islegende, ádette massivlerden paydalanıladı.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massiv degenimız ne?
Massiv – bul maǵlıwmatlar strukturası bolıp, onda birdey tiptegi elementler kópligi saqlanadı. Yaǵnıy nomerlengen yacheykalar bolıp, hár bir yacheykada qandayda bir maǵlıwmat saqlanadı (bir yacheykada bir element). Konkret bir yacheykadaǵı maǵlıwmattı alıw ushın onıń nomeri arqalı múrajat etiledi. Massiv elementiniń nomeri, ádette indeks dep ataladı.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massiv elementleri
Javada massivler bir tekli boladı. Yaǵnıy ondaǵı yacheykalardıń hámmesinde birdey tiptegi elementler saqlanadı. Mısalı, pútin sanlar massivinde tek ǵana pútin sanlı elementler, al qatarlı massivte tek ǵana qatarlar saqlanadı. Demek, Javada birinshi yacheykaǵa pútin san, ekinshisine qatarlardı jaylastıra almaymız.
Pútin sanlar massivi |
Qatarlı massiv |
|
Element |
0 1 |
2 … n |
|
indeksi |
|||
|
|
Massiv |
21 |
10 19 |
… |
99 |
Element |
|
elementi |
||||||
|
|
|
|
indeksi |
||
|
|
|
|
|
0-indeksli yacheykada 21 sanı saqlanadı
|
Qatarlar |
0 |
Samsung |
1 |
Apple |
… |
… |
n |
Nokia |
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivti táriyplew
Javada ózgeriwshilerdi táriyplegendey, massivlerdide táriyplew kerek boladı. Onı ámelge asırıwdıń 2 usılı bar. Olardıń ekewide birdey bolıp, birinshisi Java stiline tuwrı keledi, al ekinshisi C tilinen miyras bolıp qalǵan. Tómendegi kestede 2 usılıda keltirilgen.
№ |
Massivti táriyplew |
Mısallar |
Túsindirmesi |
1. |
massivTipi[] massivAtı; |
int[] arr; |
Java-stil. Massivtı |
|
|
String[] str; |
usınday táriyplew usınıs |
|
|
|
etiledi |
2. |
massivTipi massivAtı[]; |
int arr[]; |
C/C++ tillerinen miyras |
|
|
String str[]; |
bolıp qalǵan táriyplew |
Eki usılda da massivTipi – massivtegi ózgeriwshiniń tipi. Mısallarda, eki túrli massiv táriyplengen. Birinshisinde int tipindegi pútin sanlar, ekinshiside String tipi. massivAtı – massivke qoyılatuǵın at.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivti jaratıw
Javada qálegen bir obyekt sıyaqlı massivtide jaratıw kerek. Yaǵnıy, yadtan massiv ushın orın ajıratıw kerek boladı hám ol new operatorı arqalı ámelge asırıladı:
new massivTipi[uzınlıǵı];
Bul jerde biz tek ǵana massivke yadtan orın ajırattıq, biraq aldınnan táriyplengen massiv penen baylanıstırmadıq. Ádette massivlerdi dáslep táriypleydi keyin jaratadı:
int[] mas; |
// |
Massivti járiyalaw |
|
mas = new int[10]; |
/* Massivke yadtan 10 |
orın |
|
|
|
ajırattıq */ |
|
|
|
|
|
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivti jaratıw
Bul jerde pútin tipli, atı mas bolǵan massiv táriypledik, keyin bul massivke 10 yacheykadan ibarat yadtan orın ajırattıq. Ádette massivti táriyplew waqtında jaratadı, yaǵnıy tómendegishe qısqasha kodtan paydalanıladı:
int[] mas = new int[10];
Massiv jaratılıp ógan yadtan orın ajıratılǵanda, massiv elementleriniń hámmesinde dáslepki mánis boladı. Yaǵnıy, joqarıda jaratılǵan mas atlı 10 elementten ibarat bolǵan massiv elementleriniń hámmesi 0 ge teń boladı.
|
|
|
|
|
new operatorı menen massiv jaratılǵannan soń, massiv |
|
|
yacheykalarında mánis boladı. Sanlı tipler ushın 0, boolean tipi |
Itibarlı bolıń! |
|
ushın false, siltemeli tipler ushın null mánisi boladı. |
|
|
|
|
|
|
|
|
|
|
|
|
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Javada massiv uzınlıǵı
Joqarıda aytılǵanınday, massiv uzınlıǵı – bul massivtegi elementlerdiń sanı. Massiv uzınlıǵın massiv jaratılıp bolǵannan soń ózgertiwge bolmaydı. Massiv uzınlıǵın length arqalı anıqlawǵa boladı. Mısalı:
int[] massiv = new int[10]; // massiv jaratıw System.out.println(massiv.length); // massiv uzınlıǵı
1-element indeksi
0 |
1 |
2 |
3 |
4 |
5 |
|
|
6 |
7 |
8 |
9 |
indeksler |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Massiv elementler |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(5-indeksli element) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Massiv elementleri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Javada massiv elementleri 0 den baslap nomerlenedi. Yaǵnıy 10 |
|
|
|
elementten ibarat massivtiń birinshi element indeksi 0 ge, aqırǵı |
|
Itibarlı bolıń! |
|
elementi 9 ǵa teń boladı. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivti inicializaciyalaw hám elementleri ústinde ámeller
Massiv elementleri ústinde qandayda bir ámellerdi orınlaw ushın massiv indekslerinen paydalanamız. Massivti inicializaciyalaw – onıń konkret elementlerine qandayda bir mánisler beriw. Mısalı, 4 elementten ibarat pútin tipli massiv jaratıp, bul massivke hár qıylı pútin sanlardı menshikleyik:
int[] mas = new int[4];/* Massiv jaratıldı hám yadtan
4 orın ajıratıldı */ mas[0] = 7; // 0-indeksli massivke 7 sanıń jazdıq mas[1] = -9; // 1-indeksli massivke -9
mas[2] = 172;// 1-indeksli massivke 172 mas[3] = 278;// 1-indeksli massivke 278
Inicializaciyalawdı massivti táriyplew waqtında da ámelge asırıwǵa boladı:
int[] mas = new int[]{7, -9, 172, 278};
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Massivti inicializaciyalaw hám elementleri ústinde ámeller
new operatorın taslap jazıwǵa da boladı:
int[] mas = {7, -9, 172, 278};
Massiv elementlerin programma orınlanıw waqtında kiritiw:
for (int i = 0; i < 4; i++) mas[i] = in.nextInt();
Massiv elementlerin for cikl operatorı járdeminde nátiyjege shıǵarıw tómendegishe:
for (int i = 0; i < mas.length; i++)
System.out.println(mas[i]);
Massiv elementlerin for-each cikl operatorı járdeminde nátiyjege shıǵarıw tómendegishe:
for (int i: mas)
System.out.println(i);
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>