Arrays

Array nədir?

Array, sadə dildə desək, eyni tip dəyişkənlərin toplusudur. Məsələn, int tipində dəyişkənlərin toplusu. Arraydə indeks deyilən bir anlayış var, hansı ki onun vasitəsi ilə biz dəyərlərimizi saxlayaq bilirik. İndeks həmişə 0-dan başlayır. Deyək məsələn, arrayin 4-cü indeksində mən öz yaşımı dəyər olaraq saxlayıram. Bir başqa deyişlə arrayi otel olaraq fikirləşək, və indekslərinidə otaq olaraq, və deyək ki otelin (arrayin) 4-cü otağında (3-cü indeksdə, indeks 0-dan başlayır) mən qalıram.

Array yaratmaq

Arraylər [] kvadrat mötərizələr vasitəsi ilə yaradılır. Bir neçə array yaradaq aşığıda.

int[] intArray;
int []intArray;
int intArray[];

String[] stringArray;
String []stringArray;
String stringArray[];

Yuxarıda gördüyümüz kimi, arraylər qeyd olunub, lakin kvadrat mötərizələr fərqli pozisiyalarda qeyd olunub. Mötərizənin harda qoyulmasının heç bir fərqi yoxdu, lakin standard qəbul olunub ki, mötərizəni dəyişənin sağında qeyd edək. Bu halda daha oxunaqlı görünür mənim fikrimcə.

int[] intArray;
String[] stringArray;
boolean[] booleanArray;

İndiyə qədər array nədir və necə deklarasiya olunur ona baxdıq. İndi isə keçək arraylərimizi initialize edək.

int[] numbers = new int[10];

Arrayin ölçüsü həmişə müəyyən bir uzunluqda olmalıdır və onu initialize edərkən ötürməliyik. Və ya, artıq biz bilirksə arrayə hansı dəyərlər veriləcək, o halda arrayin uzunluğunu qeyd etmirik və bir başa həmin dəyərləri ötürürük. Nümunə olaraq aşağıdakı koda baxa bilərik.

int[] numbers = new int[]{1, 2, 3, 4, 5};

Və son olaraq, array bir neçə ölçülü ola bilər. Məsələn, bir ölçülü array ilə biz insanların yaşını saxlamaq üçün istifadə edə bilərik, iki ölçülü array ilə biz matrixin daxlinindəki dəyərləri saxlaya bilərik, üç ölçülü arraydə biz kubikin koordinatlarını saxlaya bilərik.

// 1 ölçülü array
int[] ages = new int[10];

// 2 ölçülü array
int[][] matrix = new int[15][15];

// 3 ölçülü array
int[][][] cubicCoordinates = new int[8][8][8];

Arrayə dəyər əlavə etmək

Yeni bir array yaradaq və həmin arrayə 5 nəfərin yaşıni əlavə edək və həmin yaşları print edək.

int[] ages = new int[5];

ages[0] = 26;
ages[1] = 27;
ages[2] = 56;
ages[3] = 56;
ages[4] = 27;

for (int i = 0; i < ages.length; i++) {
    System.out.println(ages[i]);
}
26
27
56
56
27

Gördüyümüz kimi yaşları əlavə etdik və onları print etdik. Kodu biraz təhlil edək.

  1. İlk olaraq ages adında yeni bir array yaratdıq və uzunluğu oldu 5, çünki 5 nəfərin yaşını daxil edəcik.

  2. Arrayin indekslərinə uyğun yaşları verdik, yəni 1-ci şəxsin yaşı 26, 2-ci şəxsin yaşı 27 və s.

  3. Son olaraq, for döngüsü ilə (bunu daha detallı növbəti yazılarda izah edəcəm) print elədik. Print edərkəndə biz arrayin dəyərlərini indeks vasitəsilə əldə etdik. Diqqət etdinizsə array.length, bizim arrayin uzunluğunu verir, yəni 5.

Arraydən dəyər silmək

Yuxarıda yaşlar əlavə etmişdik, indi isə həmin yaşları silək. Silmək deyəndə, həmin dəyərləri sıfırlamaq nəzərdə tutulur.

int[] ages = new int[5];

ages[0] = 26;
ages[1] = 27;
ages[2] = 56;
ages[3] = 56;
ages[4] = 27;

for (int i = 0; i < ages.length; i++) {
    ages[i] = 0;
}

for (int i = 0; i < ages.length; i++) {
    System.out.println(ages[i]);
}
0
0
0
0
0

Arrayin dəyərlərini dəyişmək

İlk olaraq yaşları əlavə edək.

int[] ages = new int[5];

ages[0] = 26;
ages[1] = 27;
ages[2] = 56;
ages[3] = 56;
ages[4] = 27;

1-ci indeksdə mənim yaşım qeyd olunub, ages[1] = 27. Bir ildən sonra mənim yaşım artdı, indi qaldı onu qeyd etmək. Bu halda biz sadəcə həmin indeksdəki dəyəri dəyişirik.

int[] ages = new int[5];

ages[0] = 26;
ages[1] = 27;
ages[2] = 56;
ages[3] = 56;
ages[4] = 27;

// Yaşım 1 yaş artdı
ages[1] = 28;

for (int i = 0; i < ages.length; i++) {
    System.out.println(ages[i]);
}
26
28
56
56
27

Arrayi sıralamaq

Əlimizdə bir array olsun, lakin dəyərlər rastgələ olsun və biz onu sıralamaq istəyək.

int[] numbers = new int[]{1, 5, 5, 7, 3, 2, 99, -7, 100, 0};

for (int i = 0; i < numbers.length - 1; i++) {
    for (int j = 0; j < numbers.length - i - 1; j++) {
        if (numbers[j] > numbers[j + 1]) {
            int temp = numbers[j];
            numbers[j] = numbers[j + 1];
            numbers[j + 1] = temp;
        }
    }
}

for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}
-7
0
1
2
3
5
5
7
99
100

Maksimum və minimum rəqəmlərinin tapılması

Əlimizdə bir rastgələ rəqəmlər var, biz isə onların içindən maksimum və minimumu tapmalıyıq.

int[] numbers = new int[]{1, 5, 5, 7, 3, 2, 99, -7, 100, 0};
int max = numbers[0];
int min = numbers[0];

for (int i = 1; i < numbers.length; i++) {
    if (max < numbers[i]) {
        max = numbers[i];
    }

    if (min > numbers[i]) {
        min = numbers[i];
    }
}

System.out.println("Max: " + max);
System.out.println("Min: " + min);
Max: 100
Min: -7

İki ölçülü matrix

İndi isə 2 bərabər ölçülü matrix yaradaq və ona rastgələ dəyərlər daxil edək.

int[][] matrix = new int[5][5];
Random random = new Random();

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix.length; j++) {
        matrix[i][j] = random.nextInt(10);
    }
}

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix.length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}
9 9 6 2 5 
3 3 2 7 7 
6 4 5 0 4 
3 7 3 1 2 
4 4 1 1 4 

Məsələni biraz qəlizləşdirək. Deyək ki, matrixin sol diaqonalının cəmliyək. Sol diaqonal deyəndə sol yuxarıdan sağ aşağıya olan ədədlər nəzərdə tutulur.

int[][] matrix = new int[5][5];
Random random = new Random();

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix.length; j++) {
        matrix[i][j] = random.nextInt(10);
    }
}

int sum = 0;
for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix.length; j++) {
        if (i == j) {
            sum = sum + matrix[i][j];
        }
    }
}

System.out.println("Sum: " + sum);
Sum: 22

Last updated