CodeGym /Java blog /Tilfældig /Konvertering af Array til ArrayList i Java
John Squirrels
Niveau
San Francisco

Konvertering af Array til ArrayList i Java

Udgivet i gruppen
Hej! I dagens lektion vil vi tale om hvordan man initialiserer et array i Java og hvordan konverterer array til en arraylist. Arrays er en udvidelse af Container-klassen i Java og kan være nyttig som en måde at midlertidigt holde et sæt primitive datatyper på, når mængden af ​​data er specifikt kendt. Men arrays er statiske, når de oprettes, hvilket betyder, at når du opretter et, kan du ikke ændre antallet af elementer, det indeholder. Du bør huske, hvordan du initialiserer et array i java; det ser sådan ud:

datatype[] isArray;
Hvor datatype er enhver primitiv datatype som int, float, long eller endda String. Du kan også placere parenteserne efter erklæringen således:

datatype isArray[];
Så hvordan tager vi dette statiske array med et bestemt antal elementer og konverterer det til en ArrayList? Nå, lad os først se på, hvad en ArrayList er.

ArrayListen

En ArrayList kan have et lignende navn som en Array, men den håndteres helt anderledes. Det er fordi en ArrayList ikke udvider Container-klassen, den udvider List-klassen. Og det betyder, at alt bliver håndteret anderledes. For det første, fordi det er en liste, kan du manipulere den anderledes. Du kan øge eller formindske størrelsen af ​​ArrayList ved at bruge add(element) , som placerer elementet i slutningen af ​​listen og øger størrelsen med én, hvis det er nødvendigt. Eller du kan bruge trimToSize()som fjerner alle tomme indekser i slutningen og trimmer ArrayList til dens nuværende størrelse. Så du kan se, at der er et par fordele ved at bruge en ArrayList i stedet for blot en array. Dernæst vil vi vise dig to metoder til at konvertere fra en Array til en ArrayList, og hvordan du flytter tilbage, hvis du har brug for det.

Flytning fra Array til ArrayList og ArrayList til Array i Java

Så lad os sige, at du har skrevet et program til at holde en opgørelse over, hvor mange møtrikker og bolte din virksomhed har ved hånden til reparation af kattetræer. I årevis har du kun haft brug for 30 forskellige typer af dem, så det har været nemt bare at bruge et array til at holde styr på. Men nu har du en ny kunde, som kræver, at du lagerfører yderligere 5 typer. Hvordan kan du ændre dit program og beholde alle dine data, OG forhindre dig selv i at skulle gøre dette igen, når du henter en anden klient? Det er rigtigt! En ArrayList! Så hvordan konverterer du en Java Array til en ArrayList? Der er tre metoder. Brug af .asList() -metoden Java-arrays har et fantastisk værktøj, som du kan se, når du ser på API'et kaldet .asList() . Så du kan bare skrive i dette:

boltInventory.asList(bolts);
Problemet med denne metode er, at den ikke opretter en ægte ArrayList. Hvad det gør, er at skabe en liste, der er fast i størrelse og uforanderlig. Så du kan stadig ikke ændre størrelsen på en dynamisk måde. Forsøg på at tilføje eller fjerne elementer vil forårsage en undtagelse. Så selvom dette har sine anvendelser, er det ikke en ægte konvertering. Men vi kan bruge dette. Brug af .asList() som et argument Dette er den anden måde at konvertere en matrix til liste i Java. Fordi .asList() -metoden opretter en liste, kan vi bruge den til at sende en reference til vores faktiske ArrayList. Sådan initialiserer du en ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Dette vil oprette en ArrayList, der har ti tomme celler. Men () i slutningen kan bruges til at sende et argument til at udfylde ArrayList. Så ved at kombinere med .asList -metoden har du:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Dette overfører listen oprettet af .asList() metoden til ArrayList, så nu kan du dynamisk manipulere den efter behov. Brug af metoden Collections.addAll() En anden måde at konvertere en Array til en ArrayList i Java er at bruge denne metode. Den overfører indholdet af Array til ArrayList. Den generiske syntaks for denne metode er:

Collections.addAll(c, T);
Hvor c er destinationen og T er hvad der passeres. Så for vores eksempel ville syntaksen se sådan ud:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Dette vil sende hele indholdet af Array-boltene til den nye ArrayList. Konvertering af en ArrayList til en Array Der kan være et tidspunkt, hvor du skal konvertere en ArrayList til en Array i Java. Hvis du gør det, har ArrayList en metode .toArray(a) , hvor a er destinationen. Så for vores eksempel ville 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 ændrer en liste til array i Java som denne, opretter du en dyb kopi. Det vil sige, at alle referencer til Array'en er forskellige fra referencerne til ArrayList. Så du kan manipulere dataene i Arrayet uden at ændre de data, der er gemt i ArrayList. Det er nyttigt at konvertere en java-liste til et array, når du skal teste data.

Konklusion

Arrays er meget nyttige til hurtig adgang og hurtig manipulation af mindre datasæt, men manglende evne til at ændre deres størrelse betyder, at de hurtigt mister effektivitet til langtidsbrug. En ArrayList giver dig den fleksibilitet og muligheden for at indsætte og fjerne noder efter behov. At lære at konvertere et Java-array til en liste vil forbedre den overordnede effektivitet af dine programmer og også forbedre deres køretider.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION