CodeGym /Java Blog /Willekeurig /Conversie van Array naar ArrayList in Java
John Squirrels
Niveau 41
San Francisco

Conversie van Array naar ArrayList in Java

Gepubliceerd in de groep Willekeurig
Hoi! In de les van vandaag zullen we het hebben over het initialiseren van een array in Java en het converteren van een array naar een arraylijst. Arrays zijn een uitbreiding van de klasse Container in Java en kunnen handig zijn als een manier om tijdelijk een set primitieve gegevenstypen vast te houden wanneer de hoeveelheid gegevens specifiek bekend is. Maar arrays zijn statisch wanneer ze worden gemaakt, wat betekent dat wanneer u er een maakt, u het aantal items dat het bevat niet kunt wijzigen. U moet onthouden hoe u een array in Java moet initialiseren; het ziet er zo uit:

datatype[] isArray;
Waar datatype elk primitief gegevenstype is, zoals int, float, long of zelfs String. U kunt de haakjes ook als volgt achter de declaratie plaatsen:

datatype isArray[];
Dus hoe nemen we deze statische array met een bepaald aantal elementen en converteren deze naar een ArrayList? Laten we eerst eens kijken wat een ArrayList is.

De ArrayList

Een ArrayList kan een vergelijkbare naam hebben als een Array, maar wordt totaal anders behandeld. Dat komt omdat een ArrayList de klasse Container niet uitbreidt, maar de klasse List. En dat betekent dat alles anders wordt aangepakt. Om te beginnen, omdat het een lijst is, kun je het op een andere manier manipuleren. U kunt de grootte van de ArrayList vergroten of verkleinen met behulp van add(element) , waarmee het element aan het einde van de lijst wordt geplaatst en de grootte indien nodig met één wordt vergroot. Of u kunt trimToSize() gebruikendie alle lege indices aan het einde verwijdert en de ArrayList inkort tot de huidige grootte. U kunt dus zien dat er enkele voordelen zijn aan het gebruik van een ArrayList in plaats van alleen een array. Vervolgens laten we u twee methoden zien om van een Array naar een ArrayList te converteren en hoe u terug kunt gaan als dat nodig is.

Verplaatsen van Array naar ArrayList en ArrayList naar Array in Java

Stel dat u een programma heeft geschreven om te inventariseren hoeveel bouten en moeren uw bedrijf bij de hand heeft voor het repareren van krabpalen. Jarenlang heb je er maar 30 verschillende soorten nodig gehad, dus het was gemakkelijk om gewoon een array te gebruiken om bij te houden. Maar nu heb je een nieuwe klant die van je eist dat je nog eens 5 soorten in voorraad hebt. Hoe kunt u uw programma wijzigen en al uw gegevens behouden EN voorkomen dat u dit opnieuw moet doen als u een andere klant ophaalt? Dat is juist! Een ArrayLijst! Dus hoe converteer je een Java-array naar een ArrayList? Er zijn drie methoden. De methode .asList() gebruiken Java-arrays hebben een geweldige tool die u kunt zien als u naar de API kijkt, genaamd .asList() . Je zou er dus gewoon in kunnen schrijven:

boltInventory.asList(bolts);
Het probleem met deze methode is dat er geen echte ArrayList wordt gemaakt. Wat het doet, is een lijst maken met een vaste grootte en onveranderlijk. U kunt de grootte dus nog steeds niet op een dynamische manier wijzigen. Als u elementen probeert toe te voegen of te verwijderen, wordt er een uitzondering gemaakt. Dus hoewel dit zijn nut heeft, is het geen echte conversie. Maar we kunnen dit gebruiken. De .asList() als argument gebruiken Dit is de tweede manier om een ​​array naar een lijst in Java te converteren. Omdat de methode .asList() een lijst maakt, kunnen we die gebruiken om een ​​verwijzing naar onze daadwerkelijke ArrayList door te geven. Hier ziet u hoe u een ArrayList initialiseert:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Hiermee wordt een ArrayList gemaakt met tien lege cellen. De () aan het einde kan echter worden gebruikt om een ​​argument door te geven om de ArrayList te vullen. Dus als je combineert met de .asList -methode, heb je:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Hiermee wordt de lijst die is gemaakt met de methode .asList() doorgegeven aan de ArrayList, zodat u deze nu dynamisch naar behoefte kunt manipuleren. De methode Collections.addAll() gebruiken Een andere manier om een ​​Array naar een ArrayList in Java te converteren, is door deze methode te gebruiken. Het geeft de inhoud van de Array door aan de ArrayList. De algemene syntaxis voor deze methode is:

Collections.addAll(c, T);
Waar c de bestemming is en T is wat wordt doorgegeven. Dus voor ons voorbeeld zou de syntaxis er als volgt uitzien:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Hiermee wordt de volledige inhoud van de Array-bouten doorgegeven aan de nieuwe ArrayList. Een ArrayList converteren naar een Array Het kan voorkomen dat u een ArrayList moet converteren naar een Array in Java. Als u dat doet, heeft de ArrayList een methode .toArray(a) , waarbij a de bestemming is. Dus voor ons voorbeeld zou de syntaxis zijn:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Wanneer u op deze manier een lijst wijzigt in een array in Java, maakt u een diepe kopie. Dat wil zeggen dat alle verwijzingen naar de Array verschillen van de verwijzingen naar de ArrayList. U kunt dus de gegevens in de Array manipuleren zonder de gegevens die zijn opgeslagen in de ArrayList te wijzigen. Het is handig om een ​​java-lijst naar een array te converteren wanneer u gegevens moet testen.

Conclusie

Arrays zijn erg handig voor snelle toegang tot en snelle manipulatie van kleinere datasets, maar het onvermogen om hun grootte te veranderen, betekent dat ze snel aan efficiëntie inboeten voor langdurig gebruik. Een ArrayList geeft u die flexibiliteit en de mogelijkheid om naar behoefte knooppunten in te voegen en te verwijderen. Als u leert hoe u een Java-array converteert naar een lijst, verbetert u de algehele efficiëntie van uw programma's en verbetert u ook hun looptijd.
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION