CodeGym /Java blogg /Slumpmässig /Konvertering av Array till ArrayList i Java
John Squirrels
Nivå
San Francisco

Konvertering av Array till ArrayList i Java

Publicerad i gruppen
Hej! I dagens lektion kommer vi att prata om hur man initierar en array i Java och hur man konverterar array till en arraylist. Arrayer är en förlängning av klassen Container i Java och kan vara användbar som ett sätt att tillfälligt hålla en uppsättning primitiva datatyper när mängden data är specifikt känd. Men matriser är statiska när de skapas, vilket innebär att när du skapar en kan du inte ändra antalet objekt som den innehåller. Du bör komma ihåg hur man initierar en array i java; det ser ut så här:

datatype[] isArray;
Där datatyp är en primitiv datatyp som int, float, long eller till och med String. Du kan också placera parenteserna efter deklarationen så här:

datatype isArray[];
Så hur tar vi denna statiska array med ett visst antal element och konverterar den till en ArrayList? Tja, låt oss först titta på vad en ArrayList är.

ArrayList

En ArrayList kan ha ett liknande namn som en Array men den hanteras helt annorlunda. Det beror på att en ArrayList inte utökar klassen Container, den utökar klassen List. Och det betyder att allt hanteras annorlunda. För det första, eftersom det är en lista, kan du manipulera den på olika sätt. Du kan öka eller minska storleken på ArrayList med add(element) , som placerar elementet i slutet av listan och ökar storleken med en om det behövs. Eller så kan du använda trimToSize()som tar bort alla tomma index i slutet och trimmar ArrayList till dess nuvarande storlek. Så du kan se att det finns några fördelar med att använda en ArrayList istället för bara en array. Därefter kommer vi att visa dig två metoder för att konvertera från en Array till en ArrayList och hur du går tillbaka om du behöver.

Flytta från Array till ArrayList och ArrayList till Array i Java

Så låt oss säga att du har skrivit ett program för att hålla en inventering av hur många muttrar och bultar ditt företag har till hands för att reparera kattträd. I flera år har du bara behövt 30 olika typer av dem, så det har varit lätt att bara använda en array för att hålla koll. Men nu har du en ny kund som kräver att du lagerför ytterligare 5 typer. Hur kan du ändra ditt program och behålla all din data, OCH förhindra att du behöver göra detta igen när du hämtar en annan klient? Det är rätt! En ArrayList! Så hur konverterar du en Java Array till en ArrayList? Det finns tre metoder. Att använda .asList() -metoden Java-arrayer har ett bra verktyg som du kan se när du tittar på API:et som heter .asList() . Så du kan bara skriva här:

boltInventory.asList(bolts);
Problemet med den här metoden är att den inte skapar en riktig ArrayList. Vad den gör är att skapa en lista som är fast i storlek och oföränderlig. Så du kan fortfarande inte ändra storleken på ett dynamiskt sätt. Att försöka lägga till eller ta bort element kommer att orsaka ett undantag. Så även om detta har sina användningsområden, är det inte en sann konvertering. Men vi kan använda detta. Använda .asList() som ett argument Detta är det andra sättet att konvertera en array till en lista i Java. Eftersom metoden .asList() skapar en lista kan vi använda den för att skicka en referens till vår faktiska ArrayList. Så här initierar du en ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Detta kommer att skapa en ArrayList som har tio tomma celler. Dock kan () i slutet användas för att skicka ett argument för att fylla ArrayList. Så genom att kombinera med .asList -metoden har du:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Detta skickar listan som skapats av metoden .asList() till ArrayList, så nu kan du dynamiskt manipulera den efter behov. Använda metoden Collections.addAll() Ett annat sätt att konvertera en Array till en ArrayList i Java är att använda den här metoden. Den skickar innehållet i Arrayen till ArrayList. Den generiska syntaxen för denna metod är:

Collections.addAll(c, T);
Där c är destinationen och T är det som passeras. Så för vårt exempel skulle syntaxen se ut så här:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Detta kommer att skicka hela innehållet i Array-bultarna till den nya ArrayList. Konvertera en ArrayList till en Array Det kan finnas en tid då du behöver konvertera en ArrayList till en Array i Java. Om du gör det har ArrayList en metod .toArray(a) , där a är destinationen. Så för vårt exempel skulle syntaxen vara:

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 ändrar en lista till array i Java så här skapar du en djup kopia. Det vill säga att alla referenser till Arrayen skiljer sig från referenserna till ArrayList. Så du kan manipulera data i Arrayen utan att ändra data som lagras i ArrayList. Det är användbart att konvertera en java-lista till en array när du behöver testa data.

Slutsats

Arrayer är mycket användbara för snabb åtkomst och snabb manipulering av mindre datamängder, men oförmågan att ändra storleken gör att de snabbt tappar effektivitet för långvarig användning. En ArrayList ger dig den flexibiliteten och möjligheten att infoga och ta bort noder efter behov. Att lära sig att konvertera en Java-array till en lista kommer att förbättra den övergripande effektiviteten för dina program och förbättra deras körtider också.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION