# Kako uporabljati Java ArrayList

**ArrayList** je ena izmed najpogosteje uporabljanih podatkovnih struktur v Javi. Omogoča dinamično spreminjanje in shranjevanje zbirke objektov. V tem vodiču vam predstavljamo sintakso Java ArrayList in pojasnimo, kdaj jo uporabiti.

## Kakšna je razlika med ArrayList in Array v Javi?

Java ArrayList je dinamičen, kar pomeni, da se poveča ali pomanjša, ko se elementi dodajo ali odstranijo. Treba je omeniti, da je razred ArrayList del **Java Collections Framework** in ni na voljo v osnovi. Za razliko od nizov ga je treba uvoziti iz knjižnice *java.util.*

ArrayLists so primerna izbira, kadar se dolžina [Java seznama](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-seznam/) lahko spreminja. Primeri vključujejo shranjevanje objektov, **iskanje ali razvrščanje** podatkov ter ustvarjanje seznamov ali čakalnih vrst.

Nasprotno pa velikosti niza ni mogoče spremeniti. To pomeni, da bi morali v idealnem primeru vnaprej vedeti število objektov, ki jih bo niz vseboval. Nizi so primerni za upravljanje vnaprej določenega niza **primitivnih podatkovnih tipov**, kot so int, float, char ali Boolean.

Ena od slabosti ArrayListov je, da lahko **dostop do njih traja dlje**. Medtem ko imajo nizi fiksni neprekinjen blok pomnilnika, objekti v ArrayListih niso shranjeni neprekinjeno. Pomembno je upoštevati prednosti in slabosti podatkovnih struktur, da lahko izberete tisto, ki najbolje ustreza vašemu primeru uporabe.

## Kakšna je sintaksa za Java ArrayList?

Pred ustvarjanjem ArrayList je treba ustrezno razred uvoziti iz knjižnice *java.util*.

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

Splošna sintaksa je:

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

»Tip« pomeni ustrezni tip podatkov v Java ArrayList.

Naslednji korak je sestaviti seznama `strings` in `integers`.

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

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

ArrayLists uporabljajo ustrezno **razredno ovojnico** primitivnih podatkovnih tipov, tako da se obravnavajo kot objekti. To pomeni, da morate namesto `int` navesti `integer`.

## Primeri metod Java ArrayList

Operacije, kot so dodajanje ali odstranjevanje elementov, se v ArrayListih ne izvajajo z Java operaterji, ampak prek **vnaprej določenih metod**. Spodaj vam bomo predstavili najpogostejše metode ArrayList.

### Dodajanje elementov

Po ustvarjanju ArrayList ‘colours’ (tip`String` ) bomo dodali različne elemente z metodo `.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);
    }
}
```

To ima za posledico:

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

### Odstranjevanje elementov

Za odstranjevanje objektov iz Java ArrayList uporabimo metodo `.remove()` in določimo indeks elementa.

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

Izpis prikazuje spremenjeni ArrayList in element, ki je bil odstranjen:

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

Kot pri večini programskih jezikov se štetje v Javi začne pri 0. To pomeni, da je odstranjeni element na indeksu 1 `red`.

### Dostop do elementov v Java ArrayList

S pomočjo funkcije `.get()` lahko dostopamo do elementa na določeni poziciji.

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

Za izhod dobimo:

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

### Spreminjanje elementov

Z `.set()` lahko spremenimo element tako, da mu dodelimo nov element na določenem indeksu.

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

Zdaj vidimo `yellow` namesto `green` na indeksu 2:

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

### Določanje dolžine Java ArrayList

Število elementov v ArrayList se lahko enostavno izračuna z metodo `.size()`.

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

To je rezultat:

```Java
3
```

### Razvrščanje in ponavljanje skozi ArrayList

Za razvrščanje Java ArrayList je treba uvoziti razred zbirke. Za ponavljanje uporabljamo [Java for-each zanko](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-for-each-zanka/). Pri vsakem ponavljanju zanke se ustrezni element izpiše na konzolo.

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

Elementi ArrayList so prikazani od najmanjšega do največjega:

```Java
9
17
20
54
```


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-arraylist/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-arraylist/) for AI/LLM consumption.