# 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.

<figure><img src="/files/qq0QuHMJhJSk4ALH8ttS" alt=""><figcaption></figcaption></figure>

## Array yaratmaq

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

```java
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ə.

```java
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.

```java
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.

```java
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.

```java
// 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.

```java
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.&#x20;

## 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.

<pre class="language-java"><code class="lang-java">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 &#x3C; ages.length; i++) {
    ages[i] = 0;
}

<strong>for (int i = 0; i &#x3C; ages.length; i++) {
</strong>    System.out.println(ages[i]);
}
</code></pre>

```
0
0
0
0
0
```

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

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

```java
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.

```java
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.

```java
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.

```java
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.

```java
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.

```java
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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sananirajabov.gitbook.io/sanani-notes/java/arrays.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
