...
Code Block | ||
---|---|---|
| ||
// husk import både java.util.ArrayList og java.util.Arrays;
ArrayList<String> list1 = Arrays.asList("en", "to", "tre"); // lager en ny ikke-modifisertbar liste som inneholder elementene "en", "to" og "tre"
ArrayList<String> list2 = new ArrayList<String>(Arrays.asList("en", "to", "tre")); // lager en ny liste med elementene "en", "to" og "tre" (kopiert fra en ikke-modifisertbar liste)
|
Lister med tall og andre enkle datatyper
ArrayList kan inneholde alle typer objekter, men ikke enkle datatyper som boolean, int, double, char osv. Dette er en generell begrensning ved alle klasse som kan spesialiseres med <type>-notasjonen, og ArrayList "arver" denne begrensningen. Løsningen er å bruke de tilsvarende verdi-klassene Boolean, Integer, Double, Character osv. Fordi Java stort sett håndterer å blande bruk av enkle verdier og instanser av disse klassene, så er ikke ulempen så stor. F.eks. er følgende kode tillatt:
Code Block | ||
---|---|---|
| ||
ArrayList<Integer> talliste = new ArrayList<Integer>(Arrays.asList(1, 2, 3)); // talliste fylles med elementene 1, 2 og 3
int sum012 = talliste.get(0) + talliste.get(1) + talliste.get(2); // hent ut verdier og beregn sum
talliste.add(sum012); // legg summen til som siste element i lista |
Her vil Java automatisk gjøre om verdiene 1, 2 og 3 til Integer-objekter med tilsvarende verdier i, og når de tas ut, så er det verdiene inni som brukes i beregningen. Tilsvarende så konverteres summen til et Integer-objekt før det legges inn i lista.
Egenskaper ved ArrayList
ArrayList er en dynamisk liste og har metoder for å legge til på slutten av lista, legg til hvor som helst inni lista, endre enkelt-elementer og fjerne dem. Dersom man fjerner et element i midten av listen, vil de påfølgende elementene forflyttes én plass forover i listen, slik at det til enhver tid ikke er huller i listen. Følgende kodesnutt illustrerer hvordan get, add og remove-metodene virker:
...
[A, B, C, D, E]
C
[A, B, D, E]
D
[A, F, B, D, E]
B
[A, F, B, D, E, A]
B
[F, B, D, E, A]
D
Gjennomgang (iterasjon) av liste-elementene
ArrayList har innebygget støtte for iterasjon ved hjelp av foreach-varianten av for-løkka, så der er svært enkelt å gå gjennom alle elementene i en ArrayList. Denne kodesnutten vil telle opp antall String-objekter som begynner med A:
Code Block | ||
---|---|---|
| ||
ArrayList<String> list = ...
int count = 0;
for (String s: list) {
if (s.startsWith("A")) {
count = count + 1; // eller count++ eller count += 1
}
}
// count er nå lik antall String-objekter i list som begynner med "A" |
Nyttige metoder
ArrayList-objektet har mange metoder, hvor vi her gir en kort beskrivelse av de mest brukte. Her brukes <type> for å angi typen som ArrayList-objektet er spesialisert til å håndtere.
...