Slik bruker du en Java ArrayList
En java Arraylist er en generell resizeable array. Det gir de fleste av fasilitetene som generelt forventes av arrays på andre språk. Disse inkluderer: å få tilgang til elementer ved hjelp av en indeks, legge til, fjerne og oppdatere elementer, dynamisk re-size, iterating over elementene, etc. De fleste av disse operasjonene er spesielt tilpasset for bruk i generelle formål.
Det er noen andre typer “arrays” (klasser som implementerer Liste grensesnitt, for å være teknisk) som er beregnet til spesielle formål. Disse inkluderer:
- Linked støtter rask innsetting og fjerning ved mellomliggende indekser.
- Vector ligner en Arraylist men er synkronisert og passer i stedet for en Arraylist for multi-threaded applikasjoner.
- Stable støtter operasjoner for å etterligne en siste-i-første-ut-liste. Det strekker seg Vector og dermed er synkronisert.
Disse spesielle klassene er utenfor rammen av denne artikkelen. Du vil imidlertid lære å sette opp og bruke en generell Java ArrayList.
Opprette en ArrayList
Opprette en Arraylist er enkelt. En tom Arraylist kan opprettes ved å bruke no-arguments constructor. Her lager vi en tom arraylist for å holde strenge.
Arraylist alist = ny ArrayList();
Hvis du kommer til å vite hvor mange elementer matriselisten din inneholder, kan du angi den opprinnelige kapasiteten. Denne innledende kapasiteten er bare et hint for minneallokering - arraylisten er ikke begrenset til å holde det angitte antallet elementer. Hvis du vet og spesifiser den opprinnelige kapasiteten, vil du kanskje få en liten forbedring i ytelsen.
Arraylist alist = ny ArrayList(20);
Populere en ArrayList
Legge til elementer på slutten
Populere en arraylist er ganske enkelt. Bare bruk Legg til() metode for å legge til et enkelt element til slutten av arraylisten. Her er et eksempel:
Arraylist alist = ny ArrayList(); alist.add ( "eple"); alist.add ( "banan"); alist.add ( "melon"); alist.add ( "orange"); System.out.println (alist); # utskrifter [apple, banan, cantaloupe, oransje]
For å finne ut hvor mange elementer er der i arraylisten, bruk metoden størrelse().
System.out.println ("Antall elementer i arraylisten:" + alist.size ()); # utskrifter Antall elementer i arraylisten: 4
Legge til elementer på en spesifisert indeks
Vil du legge til et element på en vilkårlig indeks? Angi indeksen som det første argumentet, og elementet er lagt til i indeksen:
alist.add (3, "druer"); System.out.println (alist); # utskrifter [apple, banan, cantaloupe, druer, oransje]
Legge til en haug med elementer
Du kan legge til elementer fra en hvilken som helst samling i Java-samlingshierarkiet også. en Arraylist er en bestemt type kalt Liste. Her er en måte å konstruere en Liste fra en gjeng med elementer (ved bruk av Arrays.asList ()) og legg det til en Arraylist.
Liste elementer = Arrays.asList ("pære", "kirsebær"); alist.addAll (eks); System.out.println (alist); # utskrifter [apple, banan, cantaloupe, druer, appelsin, pære, kirsebær]
Selvfølgelig kan du spesifisere en indeks som det første argumentet her for å legge til elementene som starter ved den indeksen.
Få tilgang til elementer
Når elementene er lagt til arraylisten, hvordan får vi tilgang til dem igjen?
Å få tilgang til en indeks
Hvis du kjenner vareindeksen, kan du bruke få() metode for å hente elementet på den indeksen.
Stringpunkt = alist.get (2); System.out.println ("Vare i indeks 2 er:" + element); # utskrifter Element på indeks 2 er: cantaloupe
Finne gjenstander
Hva om du ikke kjenner indeksen til varen? Du kan bruke oversikt over() for å sjekke om varen er til stede i matrisen og hente elementet ved hjelp av den returnerte indeksen.
System.out.println (alist); int index = alist.indexOf ("orange"); hvis (indeks < 0 ) System.out.println("Item \"orange\" not found"); else System.out.println("Item \"orange\" found at index " + index); # prints [apple, banana, cantaloupe, grapes, orange, pear, cherry] Item "orange" found at index 4
Hva om varen ikke er til stede i arraylisten? De oversikt over() Metoden returnerer -1 når elementet ikke er funnet.
index = alist.indexOf ("drue"); hvis (indeks < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found
Iterering over en ArrayList
Selvfølgelig er den vanligste bruken av en Arraylist er iterating over elementene. Dette kan oppnås på flere måter. Vi viser et par enkle her.
Her er den enkleste måten å iterere over en arraylist og trekke ut elementene for en slags behandling.
for (String frukt: alist) System.out.println ("Found fruit \" "+ fruit +" \ ""); # utskrifter Funnet frukt "eple" Funnet frukt "banan" Funnet frukt "cantaloupe" Funnet frukt "druer" Funnet frukt "oransje" Funnet frukt "pære" Funnet frukt "kirsebær"
Denne koden bruker Java Enhanced For-Loop som ble introdusert i Java 1.5. Før det kunne du iterere over elementene med en iterator. En iterator brukes også når du trenger det fjerne elementer under iterasjonsprosessen som eksemplet nedenfor illustrerer. (Merk at vi lager en kopi av arraylisten og arbeider på kopien.)
Arraylist blist = ny ArrayList(en liste); for (Iterator iter = blist.iterator (); iter.hasNext ();) String fruit = iter.next (); hvis (fruit.startsWith ("c")) iter.remove (); ellers System.out.println ("Keeping \" "+ fruit +" \ ""); # utskrifter Holde "eple" Holde "banan" Holde "druer" Holde "oransje" Holde "pære"
Bytte ut gjenstander
Når elementer er lagt til, trenger vi en måte å erstatte uønskede elementer på. Det kan gjøres ved å bruke sett() metode med en indeks.
alist.set (5, "ananas"); System.out.println (alist); # utskrifter [apple, banan, cantaloupe, druer, appelsin, ananas, kirsebær]
Fjerne elementer
La oss nå se hvordan vi kan fjerne elementer fra en arraylist. Hvis du kjenner indeksen til elementet (kanskje du brukte oversikt over() beskrevet ovenfor), kan du bruke fjerne() metode med indeksen. Den returnerer det fjernede elementet.
String frukt = alist.remove (2); System.out.println ("Fjernet element ved 2:" + frukt); # utskrifter Fjernet element ved 2: cantaloupe
Du kan også spesifisere elementet for å fjerne først forekomst av elementet i listen. Metoden returnerer ekte hvis elementet ble funnet og fjernet.
frukt = "druer"; System.out.println ("Fjern" + frukt + "fra listen?" + Alist.remove (frukt)); # utskrifter Fjern druer fra listen? ekte
Hvordan bruker du Arraylist i dine prosjekter og hvilke spesielle problemer har du møtt? Vennligst gi oss beskjed i kommentarene nedenfor.
Utforsk mer om: Java.