7. Arraylar¶
Dasturda ba'zan bir nechta bir xil turdagi ma'lumotlarni saqlashimiz kerak bo‘ladi.
Masalan, 5 ta o‘quvchining ballari:
80
75
90
65
88
Har bir ball uchun alohida o‘zgaruvchi yaratish noqulay.
Buning o‘rniga array ishlatamiz.
Array nima?¶
Array — bir nechta qiymatlarni bitta o‘zgaruvchida saqlash imkonini beradigan tuzilma.
Masalan:
int[] ballar = {80, 75, 90, 65, 88};
Bu yerda 5 ta son bitta ballar arrayida saqlanmoqda.
Array yaratish¶
Array yaratishning oddiy ko‘rinishi:
int[] sonlar = {10, 20, 30, 40, 50};
Bu array ichida 5 ta son bor.
Matnlar uchun ham array yaratish mumkin:
String[] ismlar = {"Ali", "Vali", "Hasan"};
Array elementlariga murojaat qilish¶
Arraydagi har bir elementning o‘z raqami bor.
Bu raqam index deyiladi.
Muhim qoida:
Array indexi 0 dan boshlanadi.
Masalan:
int[] sonlar = {10, 20, 30, 40, 50};
Indexlar:
0 → 10
1 → 20
2 → 30
3 → 40
4 → 50
Birinchi element¶
Birinchi elementni olish uchun 0 indexidan foydalanamiz.
int[] sonlar = {10, 20, 30, 40, 50};
System.out.println(sonlar[0]);
Natija:
10
Ikkinchi element¶
Ikkinchi elementning indexi 1.
System.out.println(sonlar[1]);
Natija:
20
Oxirgi element¶
Yuqoridagi arrayda oxirgi elementning indexi 4.
System.out.println(sonlar[4]);
Natija:
50
Elementni o‘zgartirish¶
Array ichidagi qiymatni o‘zgartirish mumkin.
int[] sonlar = {10, 20, 30};
sonlar[1] = 100;
Endi array:
10
100
30
bo‘ladi.
Array uzunligi¶
Arrayda nechta element borligini bilish uchun .length ishlatiladi.
int[] sonlar = {10, 20, 30, 40, 50};
System.out.println(sonlar.length);
Natija:
5
Arrayni for bilan chiqarish¶
Array va for juda ko‘p birga ishlatiladi.
Masalan:
int[] sonlar = {10, 20, 30, 40, 50};
for (int i = 0; i < sonlar.length; i++) {
System.out.println(sonlar[i]);
}
Natija:
10
20
30
40
50
Bu yerda i index vazifasini bajaryapti.
for-each¶
Arrayni yanada oson chiqarish uchun for-each ishlatish mumkin.
int[] sonlar = {10, 20, 30, 40, 50};
for (int son : sonlar) {
System.out.println(son);
}
Natija:
10
20
30
40
50
Bu usulda index bilan ishlash shart emas.
String array¶
Matnlar uchun ham array ishlatish mumkin.
String[] ismlar = {
"Ali",
"Vali",
"Hasan"
};
Keyin:
System.out.println(ismlar[0]);
Natija:
Ali
Array yaratib, keyin qiymat berish¶
Arrayni avval yaratib, qiymatlarni keyin berish mumkin.
int[] sonlar = new int[5];
Bu yerda 5 ta int uchun joy ajratildi.
Keyin:
sonlar[0] = 10;
sonlar[1] = 20;
sonlar[2] = 30;
sonlar[3] = 40;
sonlar[4] = 50;
new nima?¶
new yangi array yaratish uchun ishlatiladi.
Masalan:
int[] sonlar = new int[5];
Bu:
5 ta butun son saqlash mumkin bo‘lgan array yarat
degan ma'noni anglatadi.
Bo‘sh array qiymatlari¶
Agar int array yaratsak va unga qiymat bermasak, elementlarning boshlang‘ich qiymati 0 bo‘ladi.
Masalan:
int[] sonlar = new int[3];
Array:
0
0
0
bo‘ladi.
String arraylarda esa boshlang‘ich qiymat null bo‘ladi.
Hozircha null haqida keyinroq batafsil o‘rganamiz.
Array indexidan ehtiyot bo‘ling¶
Agar arrayda 5 ta element bo‘lsa, indexlar:
0
1
2
3
4
bo‘ladi.
5 indexi mavjud emas.
Masalan:
int[] sonlar = {10, 20, 30, 40, 50};
System.out.println(sonlar[5]);
Bu xatoga olib keladi.
Shuning uchun array indexi 0 dan boshlanishini doimo eslab qoling.
Array elementlari yig‘indisi¶
Arraydagi sonlarni qo‘shish mumkin.
int[] sonlar = {10, 20, 30, 40};
int yigindi = 0;
for (int son : sonlar) {
yigindi += son;
}
System.out.println(yigindi);
Natija:
100
Eng katta sonni topish¶
Array ichidagi eng katta sonni ham topish mumkin.
int[] sonlar = {10, 50, 20, 80, 30};
int engKatta = sonlar[0];
for (int son : sonlar) {
if (son > engKatta) {
engKatta = son;
}
}
System.out.println(engKatta);
Natija:
80
Bu yerda avval birinchi sonni eng katta deb olamiz.
Keyin qolgan sonlarni bittadan tekshiramiz.
Array va String¶
Stringlardan ham array yaratish mumkin:
String[] mevalar = {
"Olma",
"Banan",
"Uzum"
};
Ularni for-each bilan chiqaramiz:
for (String meva : mevalar) {
System.out.println(meva);
}
Natija:
Olma
Banan
Uzum
Ikki o‘lchamli array¶
Array ichida yana array bo‘lishi mumkin.
Buni ikki o‘lchamli array deyiladi.
Masalan:
int[][] sonlar = {
{1, 2, 3},
{4, 5, 6}
};
Buni jadvalga o‘xshatish mumkin:
1 2 3
4 5 6
Hozircha oddiy arraylarni yaxshi o‘rganish muhimroq.
Amaliy mashqlar¶
1-mashq¶
Quyidagi arrayni yarating:
10, 20, 30, 40, 50
Keyin barcha elementlarni ekranga chiqaring.
2-mashq¶
5 ta ism saqlaydigan String array yarating.
Keyin ularni ekranga chiqaring.
3-mashq¶
Arraydagi barcha sonlarning yig‘indisini toping.
4-mashq¶
Arraydagi eng katta sonni toping.
5-mashq¶
Arraydagi eng kichik sonni toping.
6-mashq¶
Arraydagi faqat juft sonlarni chiqaring.
7-mashq¶
Quyidagi arraydagi ikkinchi elementni 100 ga o‘zgartiring:
int[] sonlar = {10, 20, 30, 40};
Muhim narsalarni eslab qoling¶
Array bir nechta qiymatni bitta o‘zgaruvchida saqlaydi.
Array indexi 0 dan boshlanadi.
Masalan:
int[] sonlar = {10, 20, 30};
sonlar[0] → 10
sonlar[1] → 20
sonlar[2] → 30
Array uzunligini:
sonlar.length
orqali bilamiz.
Array bilan ishlashda for va for-each juda foydali.
Keyingi bobda String, ya'ni matnlar bilan ishlashni batafsil o‘rganamiz.