CodeGym /Java-blogg /Tilfeldig /Konvertering av Array til ArrayList i Java
John Squirrels
Nivå
San Francisco

Konvertering av Array til ArrayList i Java

Publisert i gruppen
Hei! I dagens leksjon skal vi snakke om hvordan initialisere en array i Java og hvordan konvertere array til en arraylist. Arrays er en utvidelse av Container-klassen i Java og kan være nyttig som en måte å midlertidig holde et sett med primitive datatyper når datamengden er spesifikt kjent. Men matriser er statiske når de opprettes, noe som betyr at når du oppretter en, kan du ikke endre antall elementer den inneholder. Du bør huske hvordan du initialiserer en array i java; det ser slik ut:

datatype[] isArray;
Der datatype er en hvilken som helst primitiv datatype som int, float, long eller til og med String. Du kan også plassere parentesene etter erklæringen slik:

datatype isArray[];
Så hvordan tar vi denne statiske matrisen med et bestemt antall elementer og konverterer den til en ArrayList? Vel, først, la oss se på hva en ArrayList er.

ArrayList

En ArrayList kan ha et lignende navn som en Array, men den håndteres helt annerledes. Det er fordi en ArrayList ikke utvider Container-klassen, den utvider List-klassen. Og det betyr at alt blir håndtert annerledes. For det første, fordi det er en liste, kan du manipulere den annerledes. Du kan øke eller redusere størrelsen på ArrayList ved å bruke add(element) , som plasserer elementet på slutten av listen og øker størrelsen med én om nødvendig. Eller du kan bruke trimToSize()som fjerner eventuelle tomme indekser på slutten og trimmer ArrayList til gjeldende størrelse. Så du kan se at det er noen fordeler ved å bruke en ArrayList i stedet for bare en array. Deretter skal vi vise deg to metoder for å konvertere fra en Array til en ArrayList og hvordan du flytter tilbake hvis du trenger det.

Flytte fra Array til ArrayList og ArrayList til Array i Java

Så la oss si at du har skrevet et program for å holde oversikt over hvor mange muttere og bolter din bedrift har tilgjengelig for å reparere kattetrær. I årevis har du bare trengt 30 forskjellige typer av dem, så det har vært enkelt å bare bruke en array for å holde oversikt. Men nå har du en ny klient som krever at du lagerfører ytterligere 5 typer. Hvordan kan du endre programmet og beholde alle dataene dine, OG forhindre at du må gjøre dette igjen når du henter en annen klient? Det er riktig! En ArrayList! Så hvordan konverterer du en Java Array til en ArrayList? Det er tre metoder. Ved å bruke .asList() -metoden Java-matriser har et flott verktøy som du kan se når du ser på APIen kalt .asList() . Så du kan bare skrive i dette:

boltInventory.asList(bolts);
Problemet med denne metoden er at den ikke lager en ekte ArrayList. Det den gjør er å lage en liste som er fast i størrelse og uforanderlig. Så du kan fortsatt ikke endre størrelsen på en dynamisk måte. Prøver å legge til eller fjerne elementer vil føre til et unntak. Så selv om dette har sine bruksområder, er det ikke en ekte konvertering. Men vi kan bruke dette. Bruke .asList() som et argument Dette er den andre måten å konvertere en matrise til liste i Java. Fordi .asList() -metoden oppretter en liste, kan vi bruke den til å sende en referanse til vår faktiske ArrayList. Slik initialiserer du en ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Dette vil lage en ArrayList som har ti tomme celler. Imidlertid kan () på slutten brukes til å sende et argument for å fylle ArrayList. Så ved å kombinere med .asList -metoden har du:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Dette sender listen opprettet av .asList() -metoden inn i ArrayList, så nå kan du manipulere den dynamisk etter behov. Bruke Collections.addAll() -metoden En annen måte å konvertere en Array til en ArrayList i Java er å bruke denne metoden. Den sender innholdet i Arrayen til ArrayList. Den generiske syntaksen for denne metoden er:

Collections.addAll(c, T);
Hvor c er målet og T er det som passeres. Så for vårt eksempel vil syntaksen se slik ut:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Dette vil sende hele innholdet i Array-boltene til den nye ArrayList. Konvertere en ArrayList til en Array Det kan være en tid når du trenger å konvertere en ArrayList til en Array i Java. Hvis du gjør det, har ArrayList en metode .toArray(a) , der a er destinasjonen. Så for vårt eksempel vil syntaksen være:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Når du endrer en liste til array i Java som dette, lager du en dyp kopi. Det vil si at alle referanser til Arrayen er forskjellige fra referansene til ArrayList. Så du kan manipulere dataene i Arrayen uten å endre dataene som er lagret i ArrayList. Det er nyttig å konvertere en java-liste til en matrise når du trenger å teste data.

Konklusjon

Arrays er svært nyttige for rask tilgang og rask manipulering av mindre datasett, men manglende evne til å endre størrelsen betyr at de raskt mister effektivitet for langvarig bruk. En ArrayList gir deg den fleksibiliteten og muligheten til å sette inn og fjerne noder etter behov. Å lære hvordan du konverterer en Java-array til en liste vil forbedre den generelle effektiviteten til programmene dine og forbedre kjøretidene deres også.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION