# Sådan bruges Java ArrayList

**ArrayList** er en af de mest anvendte datastrukturer i Java. Den giver dig mulighed for dynamisk at ændre og gemme en samling af objekter. I denne vejledning introducerer vi dig til syntaksen i Java ArrayList og forklarer, hvornår du skal bruge den.

## Hvad er forskellen 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 Collections Framework** og ikke er tilgængelig som standard. I modsætning til arrays skal den importeres fra *java.util-biblioteket*.

ArrayLists er et godt valg, når længden af en [Java List](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-liste/) potentielt kan variere. Eksempler herpå er lagring af objekter, **søgning eller sortering af** data og oprettelse af lister eller køer.

Derimod er det ikke muligt at ændre størrelsen 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 administrere et foruddefineret sæt af **primitive datatyper** såsom int, float, char eller Boolean.

En ulempe ved ArrayLists er, at det kan **tage længere tid at få adgang til dem**. Mens arrays har en fast sammenhængende hukommelsesblok, gemmes objekter i ArrayLists ikke sammenhængende. Det er vigtigt at tage højde for fordele og ulemper ved datastrukturerne, så du kan vælge den, der fungerer bedst til dit brugsscenarie.

## Hvad er syntaksen for Java ArrayList?

Før ArrayList oprettes, skal den tilsvarende klasse importeres fra *java.util* -biblioteket.

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

Den generelle syntaks er:

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

‘Type’ står for den respektive datatype i Java ArrayList.

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

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

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

ArrayLists bruger den tilsvarende **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

Handlinger som tilføjelse eller fjernelse af elementer udføres ikke på ArrayLists med Java-operatorer, men via **foruddefinerede metoder**. Nedenfor viser vi dig de mest almindelige ArrayList-metoder.

### Tilføjelse af elementer

Efter at have oprettet ArrayList ‘colours’ (`String` type), tilføjer vi forskellige elementer ved hjælp af metoden `.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);
    }
}
```

Dette resulterer i:

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

### Fjernelse af elementer

For at fjerne objekter fra Java ArrayList bruger vi metoden `.remove()` og angiver elementets 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);
    }
}
```

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

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

Som med de fleste programmeringssprog 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 funktionen `.get()` kan vi få adgang til et element på en bestemt position.

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

Som resultat får vi:

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

### Skiftende elementer

Med `.set()` kan vi ændre et element ved at tildele et nyt element ved et bestemt 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);
        colours.set(2, "yellow");
        System.out.println("Modified ArrayList: " + colours);
    }
}
```

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

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

### Bestemmelse af længden af Java ArrayList

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

Dette er resultatet:

```Java
3
```

### Sortering og iteration gennem ArrayList

For at sortere Java ArrayList skal collections-klassen importeres. Til iterationen bruger vi en [Java for-each-loop](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-for-each-loop/). For hver iteration af loopen udskrives det respektive element til konsollen.

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

Elementerne i ArrayList vises fra det mindste til det største:

```Java
9
17
20
54
```


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-arraylist/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-arraylist/) for AI/LLM consumption.