# Kaip naudoti Java ArrayList

**ArrayList** yra viena iš dažniausiai naudojamų duomenų struktūrų Java kalboje. Ji leidžia dinamiškai keisti ir saugoti objektų rinkinį. Šiame pamokų cikle supažindinsime jus su Java ArrayList sintakse ir paaiškinsime, kada ją naudoti.

## Koks yra skirtumas tarp ArrayList ir Array Java kalboje?

Java ArrayList yra dinamiškas, tai reiškia, kad jo dydis didėja ir mažėja, kai elementai yra pridedami arba pašalinami. Verta paminėti, kad ArrayList klasė yra **Java Collections Framework** dalis ir nėra prieinama iš karto. Skirtingai nei masyvai, ji turi būti importuota iš *java.util* bibliotekos.

ArrayLists yra tinkamas pasirinkimas, kai [Java sąrašo](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-sarasas/) ilgis gali kisti. Pavyzdžiai: objektų saugojimas, duomenų **paieška ar rūšiavimas**, sąrašų ar eilių kūrimas.

Priešingai, masyvo dydžio pakeisti negalima. Tai reiškia, kad idealiu atveju turėtumėte iš anksto žinoti, kiek objektų tilps į masyvą. Masyvai tinka iš anksto apibrėžtų **primityvių duomenų tipų**, pvz., int, float, char arba Boolean, rinkiniams tvarkyti.

Vienas iš ArrayList trūkumų yra tai, kad **prieiga prie jų** gali **užtrukti ilgiau**. Nors masyvai turi fiksuotą ištisinį atminties bloką, objektai ArrayList nėra saugomi ištisai. Svarbu atsižvelgti į duomenų struktūrų privalumus ir trūkumus, kad galėtumėte pasirinkti tą, kuri geriausiai tinka jūsų naudojimo atvejui.

## Kokia yra Java ArrayList sintaksė?

Prieš kuriant ArrayList, atitinkama klasė turi būti importuota iš *java.util* bibliotekos.

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

Bendroji sintaksė yra tokia:

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

„Type“ reiškia atitinkamą duomenų tipą Java ArrayList.

Kitas žingsnis – sudaryti `strings` ir `integers` sąrašus.

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

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

ArrayLists naudoja atitinkamą primityvių duomenų tipų **apgaubimo klasę**, kad jie būtų traktuojami kaip objektai. Tai reiškia, kad turite nurodyti `integer`, o ne `int`.

## Java ArrayList metodų pavyzdžiai

Tokios operacijos kaip elementų pridėjimas ar pašalinimas nėra atliekamos ArrayList sąrašuose naudojant Java operatorius, bet per **iš anksto apibrėžtus metodus**. Toliau pateiksime dažniausiai naudojamus ArrayList metodus.

### Elementų pridėjimas

Sukūrę ArrayList „colours“ (`String` tipo), pridėsime įvairius elementus naudodami `.add()` metodą.

```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);
    }
}
```

Tai duoda tokį rezultatą:

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

### Elementų pašalinimas

Norėdami pašalinti objektus iš Java ArrayList, naudojame `.remove()` metodą ir nurodome elemento indeksą.

```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);
    }
}
```

Rezultatas rodo pakeistą ArrayList ir pašalintą elementą:

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

Kaip ir daugumoje programavimo kalbų, skaičiavimas Java kalboje prasideda nuo 0. Tai reiškia, kad pašalintas elementas indekse 1 yra `red`.

### Prieiga prie elementų Java ArrayList

Naudodami funkciją `.get()`, galime pasiekti elementą tam tikroje pozicijoje.

```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);
    }
}
```

Gautas rezultatas:

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

### Kintantys elementai

Naudodami `.set()`, galime pakeisti elementą, priskirdami naują elementą tam tikrame indekse.

```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);
    }
}
```

Dabar indeksu 2 matome `yellow` vietoj `green`:

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

### Java ArrayList ilgio nustatymas

ArrayList elementų skaičių galima lengvai apskaičiuoti naudojant `.size()` metodą.

```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());
    }
}
```

Tai yra rezultatas:

```Java
3
```

### Rūšiavimas ir kartojimas per ArrayList

Norint rūšiuoti Java ArrayList, reikia importuoti kolekcijų klasę. Iteracijai naudojame [Java for-each ciklą](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-for-each-ciklas/). Kiekvienos ciklo iteracijos metu atitinkamas elementas išvedamas į konsolę.

```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 elementai rodomi nuo mažiausio iki didžiausio:

```Java
9
17
20
54
```


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-masyvas/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-masyvas/) for AI/LLM consumption.