ArrayList je ena izmed naj­po­go­ste­je upo­ra­blja­nih po­dat­kov­nih struktur v Javi. Omogoča dinamično spre­mi­nja­nje in shra­nje­va­nje zbirke objektov. V tem vodiču vam pred­sta­vlja­mo 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 od­stra­ni­jo. Treba je omeniti, da je razred ArrayList del Java Col­lec­ti­ons Framework in ni na voljo v osnovi. Za razliko od nizov ga je treba uvoziti iz knjižnice java.util.

Ar­ray­Li­sts so primerna izbira, kadar se dolžina Java seznama lahko spreminja. Primeri vklju­ču­je­jo shra­nje­va­nje objektov, iskanje ali raz­vr­šča­nje podatkov ter ustvar­ja­nje seznamov ali čakalnih vrst.

Nasprotno pa velikosti niza ni mogoče spre­me­ni­ti. To pomeni, da bi morali v idealnem primeru vnaprej vedeti število objektov, ki jih bo niz vseboval. Nizi so primerni za upra­vlja­nje vnaprej do­lo­če­ne­ga niza pri­mi­tiv­nih po­dat­kov­nih tipov, kot so int, float, char ali Boolean.

Ena od slabosti Ar­ray­Li­stov je, da lahko dostop do njih traja dlje. Medtem ko imajo nizi fiksni ne­pre­ki­njen blok po­mnil­ni­ka, objekti v Ar­ray­Li­stih niso shranjeni ne­pre­ki­nje­no. Pomembno je upo­šte­va­ti prednosti in slabosti po­dat­kov­nih struktur, da lahko izberete tisto, ki najbolje ustreza vašemu primeru uporabe.

Kakšna je sintaksa za Java ArrayList?

Pred ustvar­ja­njem ArrayList je treba ustrezno razred uvoziti iz knjižnice java.util.

import java.util.ArrayList;
Java

Splošna sintaksa je:

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

»Tip« pomeni ustrezni tip podatkov v Java ArrayList.

Naslednji korak je sestaviti seznama strings in integers.

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

Ar­ray­Li­sts upo­ra­blja­jo ustrezno razredno ovojnico pri­mi­tiv­nih po­dat­kov­nih tipov, tako da se obrav­na­va­jo kot objekti. To pomeni, da morate namesto int navesti integer.

Primeri metod Java ArrayList

Operacije, kot so dodajanje ali od­stra­nje­va­nje elementov, se v Ar­ray­Li­stih ne izvajajo z Java ope­ra­ter­ji, ampak prek vnaprej določenih metod. Spodaj vam bomo pred­sta­vi­li naj­po­go­stej­še metode ArrayList.

Dodajanje elementov

Po ustvar­ja­nju ArrayList ‘colours’ (tipString ) bomo dodali različne elemente z metodo .add().

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

To ima za posledico:

ArrayList: [blue, red, green]
Java

Od­stra­nje­va­nje elementov

Za od­stra­nje­va­nje objektov iz Java ArrayList uporabimo metodo .remove() in določimo indeks elementa.

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

Izpis prikazuje spre­me­nje­ni ArrayList in element, ki je bil od­stra­njen:

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

Kot pri večini pro­gram­skih jezikov se štetje v Javi začne pri 0. To pomeni, da je od­stra­nje­ni element na indeksu 1 red.

Dostop do elementov v Java ArrayList

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

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

Za izhod dobimo:

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

Spre­mi­nja­nje elementov

Z .set() lahko spre­me­ni­mo element tako, da mu dodelimo nov element na določenem indeksu.

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

Zdaj vidimo yellow namesto green na indeksu 2:

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

Določanje dolžine Java ArrayList

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

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

To je rezultat:

3
Java

Raz­vr­šča­nje in po­na­vlja­nje skozi ArrayList

Za raz­vr­šča­nje Java ArrayList je treba uvoziti razred zbirke. Za po­na­vlja­nje upo­ra­blja­mo Java for-each zanko. Pri vsakem po­na­vlja­nju zanke se ustrezni element izpiše na konzolo.

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

Elementi ArrayList so prikazani od naj­manj­še­ga do naj­ve­čje­ga:

9
17
20
54
Java

dc8b52a43898356b40686188ee9833ee

e55dd419814f58a4e87e39befe1f5071

f4923fd8ba30637c20154bb3a1e957db

1480612d3e8e40504c5d058a0c210e88

b1325df3e2dc7b9da8307052ded3fe1a

fb14891a5916797d4a2e3240e017ea35

Go to Main Menu