# Kuidas kasutada Java ArrayList'i

**ArrayList** on üks Java kõige kasutatavamaid andmestruktuure. See võimaldab teil dünaamiliselt muuta ja salvestada objektide kogumit. Selles õpetuses tutvustame teile Java ArrayList’i süntaksit ja selgitame, millal seda kasutada.

## Mis vahe on Java keeles ArrayList ja Array vahel?

Java ArrayList on dünaamiline, mis tähendab, et selle suurus kasvab ja kahaneb, kui elemente lisatakse või eemaldatakse. Tuleb märkida, et ArrayList-klass on osa **Java Collections Frameworkist** ja ei ole algselt kättesaadav. Erinevalt massiividest tuleb see importida *java.util-raamatukogust*.

ArrayList on sobiv valik, kui [Java List](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-nimekiri/) pikkus võib potentsiaalselt varieeruda. Näiteks objektide salvestamine, andmete **otsimine või sorteerimine** ning nimekirjade või järjekordade loomine.

Seevastu massiivi suurust ei ole võimalik muuta. See tähendab, et ideaalis peaksite eelnevalt teadma, kui palju objekte massiiv mahutab. Massiivid sobivad eeldefineeritud **primitiivsete andmetüüpide**, nagu int, float, char või Boolean, haldamiseks.

ArrayListide üheks puuduseks on see, et **nende juurdepääs** võib **võtta kauem aega**. Kui massiividel on kindel pidev mälublokk, siis ArrayListide objektid ei ole järjestikku salvestatud. On oluline võtta arvesse andmestruktuuride eeliseid ja puudusi, et saaksite valida oma kasutusjuhtumile kõige sobivama.

## Mis on Java ArrayList’i süntaks?

Enne ArrayList’i loomist tuleb vastav klass importida *java.util* raamatukogust.

```Java
import java.util.ArrayList;
```

Üldine süntaks on:

```Java
ArrayList<Type> arrayList= new ArrayList<>();
```

„Type” tähistab vastavat andmetüüpi Java ArrayListis.

Järgmine samm on luua nimekirjad `strings` ja `integers`.

```Java
ArrayList<String> arrayList= new ArrayList<>();
```

```Java
ArrayList<Integer> arrayList= new ArrayList<>();
```

ArrayListid kasutavad vastavaid primitiivseid andmetüüpe **ümbritsevaid klasse**, et neid saaks käsitleda objektidena. See tähendab, et peate määrama `integer` asemel `int`.

## Näited Java ArrayList meetoditest

Elementide lisamine või eemaldamine ei toimu ArrayListides Java operaatoritega, vaid **eeldefineeritud meetodite** abil. Allpool tutvustame teile kõige levinumaid ArrayList meetodeid.

### Elementide lisamine

Pärast ArrayList ‘colours’ (`String` tüüpi) loomist lisame erinevaid elemente, kasutades meetodit `.add()`.

```Java
import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
    }
}
```

Selle tulemuseks on:

```Java
ArrayList: [blue, red, green]
```

### Elementide eemaldamine

Objektide eemaldamiseks Java ArrayListist kasutame meetodit `.remove()` ja määrame elemendi indeksi.

```Java
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
        String colour = colours.remove(1);
        System.out.println("ArrayList: " + colours);
        System.out.println("Removed Element: " + colour);
    }
}
```

Väljund näitab muudetud ArrayList’i ja eemaldatud elementi:

```Java
ArrayList: [blue, green]
Removed Element: red
```

Nagu enamikus programmeerimiskeeltes, algab loendamine Java keeles **0-st**. See tähendab, et indeksist 1 eemaldatud element on `red`.

### Java ArrayListis elementidele juurdepääs

Funktsiooni `.get()` abil saame juurdepääsu elemendile kindlas asukohas.

```Java
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> clothes = new ArrayList<>();
        clothes.add("jacket");
        clothes.add("shirt");
        clothes.add("pullover");
        System.out.println("ArrayList: " + clothes);
        String str = clothes.get(2);
        System.out.print("Element at index 2: " + str);
    }
}
```

Väljundiks saame:

```Java
ArrayList: [jacket, shirt, pullover]
Element at index 2: pullover
```

### Muutuvad elemendid

`.set()` abil saame muuta elementi, määrates uue elemendi kindlale indeksile.

```Java
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println("ArrayList: " + colours);
        colours.set(2, "yellow");
        System.out.println("Modified ArrayList: " + colours);
    }
}
```

Nüüd näeme indeksil 2 `green` asemel `yellow`:

```Java
ArrayList: [blue, red, green]
Modified ArrayList: [blue, red, yellow]
```

### Java ArrayList’i pikkuse määramine

ArrayListis olevate elementide arvu saab hõlpsasti arvutada, kasutades `.size()` meetodit.

```Java
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> colours = new ArrayList<>();
        colours.add("blue");
        colours.add("red");
        colours.add("green");
        System.out.println(colours.size());
    }
}
```

See on tulemus:

```Java
3
```

### ArrayList’i sorteerimine ja läbivaatamine

Java ArrayList’i sorteerimiseks tuleb importida kollektsiooniklass. Iteratsiooni jaoks kasutame [Java for-each-tsüklit](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-for-each-tsuekkel/). Iga tsükli iteratsiooni puhul väljastatakse vastav element konsooli.

```Java
import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> ages = new ArrayList<Integer>();
        ages.add(20);
        ages.add(54);
        ages.add(17);
        ages.add(9);
        Collections.sort(ages);
        for (int i : ages) {
            System.out.println(i);
        }
    }
}
```

ArrayList’i elemendid kuvatakse väikseimast suurima järgi:

```Java
9
17
20
54
```


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-arraylist/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-arraylist/) for AI/LLM consumption.