ArrayList er en af de mest anvendte da­ta­struk­tu­rer i Java. Den giver dig mulighed for dynamisk at ændre og gemme en samling af objekter. I denne vej­led­ning in­tro­du­ce­rer vi dig til syntaksen i Java ArrayList og forklarer, hvornår du skal bruge den.

Hvad er for­skel­len mellem ArrayList og Array i Java?

Java ArrayList er dynamisk, hvilket betyder, at den vokser og krymper i størrelse, når elementer tilføjes eller fjernes. Det er værd at bemærke, at ArrayList-klassen er en del af Java Col­lections Framework og ikke er til­gæn­ge­lig som standard. I mod­sæt­ning til arrays skal den im­por­te­res fra java.util-bi­bli­o­te­ket.

Ar­ray­Lists er et godt valg, når længden af en Java List po­ten­ti­elt kan variere. Eksempler herpå er lagring af objekter, søgning eller sortering af data og op­ret­tel­se af lister eller køer.

Derimod er det ikke muligt at ændre stør­rel­sen på en matrix. Det betyder, at du helst bør kende antallet af objekter, som matrixen skal indeholde, på forhånd. Matrixer er velegnede til at ad­mi­ni­stre­re et for­ud­de­fi­ne­ret sæt af primitive datatyper såsom int, float, char eller Boolean.

En ulempe ved Ar­ray­Lists er, at det kan tage længere tid at få adgang til dem. Mens arrays har en fast sam­men­hæn­gen­de hukom­mel­ses­blok, gemmes objekter i Ar­ray­Lists ikke sam­men­hæn­gen­de. Det er vigtigt at tage højde for fordele og ulemper ved da­ta­struk­tu­rer­ne, så du kan vælge den, der fungerer bedst til dit brugs­sce­na­rie.

Hvad er syntaksen for Java ArrayList?

Før ArrayList oprettes, skal den til­sva­ren­de klasse im­por­te­res fra java.util -bi­bli­o­te­ket.

import java.util.ArrayList;
Java

Den generelle syntaks er:

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

‘Type’ står for den respek­ti­ve datatype i Java ArrayList.

Det næste trin er at oprette lister med strings og integers.

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

Ar­ray­Lists bruger den til­sva­ren­de wrapper-klasse af primitive datatyper, så de behandles som objekter. Det betyder, at du skal angive integer i stedet for int.

Eksempler på Java ArrayList-metoder

Hand­lin­ger som til­fø­jel­se eller fjernelse af elementer udføres ikke på Ar­ray­Lists med Java-ope­ra­to­rer, men via for­ud­de­fi­ne­re­de metoder. Nedenfor viser vi dig de mest al­min­de­li­ge ArrayList-metoder.

Til­fø­jel­se af elementer

Efter at have oprettet ArrayList ‘colours’ (String type), tilføjer vi for­skel­li­ge elementer ved hjælp af metoden .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

Dette re­sul­te­rer i:

ArrayList: [blue, red, green]
Java

Fjernelse af elementer

For at fjerne objekter fra Java ArrayList bruger vi metoden .remove() og angiver ele­men­tets indeks.

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

Outputtet viser den ændrede ArrayList og det element, der er blevet fjernet:

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

Som med de fleste pro­gram­me­rings­sprog starter tællingen i Java fra 0. Det betyder, at det fjernede element ved indeks 1 er red.

Adgang til elementer i Java ArrayList

Ved hjælp af funk­tio­nen .get() kan vi få adgang til et element på en bestemt position.

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

Som resultat får vi:

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

Skiftende elementer

Med .set() kan vi ændre et element ved at tildele et nyt element ved et bestemt indeks.

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

Vi ser nu yellow i stedet for green ved indeks 2:

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

Be­stem­mel­se af længden af Java ArrayList

Antallet af elementer i ArrayList kan nemt beregnes ved hjælp af metoden .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

Dette er re­sul­ta­tet:

3
Java

Sortering og iteration gennem ArrayList

For at sortere Java ArrayList skal col­lections-klassen im­por­te­res. Til ite­ra­tio­nen bruger vi en Java for-each-loop. For hver iteration af loopen udskrives det respek­ti­ve element til konsollen.

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

Ele­men­ter­ne i ArrayList vises fra det mindste til det største:

9
17
20
54
Java

dc8b52a43898356b40686188ee9833ee

Gå til ho­ved­me­nu­en