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.