logo

ArrayList naar array-conversie in Java: toArray()-methoden

De volgende methoden kunnen worden gebruikt voor het converteren van ArrayList naar Array:

arraylijst-naar-array



Methode 1: De methode Object[] toArray() gebruiken

Syntaxis:

 public Object[] toArray()>
  • Het wordt gespecificeerd door toArray in interfaceverzameling en interfacelijst
  • Het overschrijft toArray in de klasse AbstractCollection
  • Het retourneert een array met alle elementen in deze lijst in de juiste volgorde.

Java








// Java program to demonstrate working of> // Objectp[] toArray()> import> java.io.*;> import> java.util.List;> import> java.util.ArrayList;> class> GFG {> >public> static> void> main(String[] args)> >{> >List al =>new> ArrayList();> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>40>);> >Object[] objects = al.toArray();> >// Printing array of objects> >for> (Object obj : objects)> >System.out.print(obj +>' '>);> >}> }>

Mission Impossible alle films

>

>

Uitvoer

10 20 30 40>

Opmerking: de methode toArray() retourneert een array van het type Object(Object[]). We moeten het naar Integer typeren voordat we het als Integer-objecten kunnen gebruiken. Als we niet typen, krijgen we een compilatiefout.

Beschouw het volgende voorbeeld:

Java




// A Java program to demonstrate that assigning Objects[]> // to Integer[] causes error.> import> java.io.*;> import> java.util.List;> import> java.util.ArrayList;> class> GFG {> >public> static> void> main(String[] args)> >{> >List al =>new> ArrayList();> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>40>);> >// Error: incompatible types: Object[]> >// cannot be converted to Integer[]> >Integer[] objects = al.toArray();> >for> (Integer obj : objects)> >System.out.println(obj);> >}> }>

>

>

Uitgang:

19: error: incompatible types: Object[] cannot be converted to Integer[] Integer[] objects = al.toArray(); ^ 1 error>

Het wordt daarom aanbevolen om een ​​array te maken waarin elementen van List moeten worden opgeslagen en deze als argument door te geven in de methode toArray() om elementen op te slaan als deze groot genoeg is. Anders wordt hiervoor een nieuwe array van hetzelfde type toegewezen.

Methode 2: T[] toArray(T[] a) gebruiken

// Converts a list into an array arr[] and returns same. // If arr[] is not big enough, then a new array of same // type is allocated for this purpose. // T  represents generic . public T[] toArray(T[] arr)>

Houd er rekening mee dat er een arrayparameter en een arrayretourwaarde zijn. Het belangrijkste doel van de doorgegeven array is om het type array te vertellen. De geretourneerde array is van hetzelfde type als de doorgegeven array.

java cast string naar int
  • Als de doorgegeven array voldoende ruimte heeft, worden de elementen in deze array zelf opgeslagen.
  • Als de doorgegeven array niet genoeg ruimte heeft, wordt er een nieuwe array gemaakt met hetzelfde type en dezelfde grootte als de gegeven lijst.
  • Als de doorgegeven array meer ruimte heeft, wordt de array eerst gevuld met lijstelementen en vervolgens worden nulwaarden gevuld.

Er wordt ArrayStoreException gegenereerd als het runtimetype van a geen supertype is van het runtimetype van elk element in deze lijst.

Java




// A Java program to convert an ArrayList to arr[]> import> java.io.*;> import> java.util.List;> import> java.util.ArrayList;> class> GFG {> >public> static> void> main(String[] args)> >{> >List al =>new> ArrayList();> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>40>);> >Integer[] arr =>new> Integer[al.size()];> >arr = al.toArray(arr);> >for> (Integer x : arr)> >System.out.print(x +>' '>);> >}> }>

>

>

Uitvoer

10 20 30 40>

Opmerking: als de opgegeven array nul is, wordt NullpointerException gegenereerd. Zie dit bijvoorbeeld.

Methode 3: Handmatige methode om ArrayList te converteren met behulp van de get()-methode

We kunnen deze methode gebruiken als we Java niet willen gebruiken in de ingebouwde methode toArray(). Dit is een handmatige methode om alle ArrayList-elementen naar de String Array[] te kopiëren.

// Returns the element at the specified index in the list. public E get(int index)>

Java




// Java program to convert a ArrayList to an array> // using get() in a loop.> import> java.io.*;> import> java.util.List;> import> java.util.ArrayList;> class> GFG {> >public> static> void> main(String[] args)> >{> >List al =>new> ArrayList();> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>40>);> >Integer[] arr =>new> Integer[al.size()];> >// ArrayList to Array Conversion> >for> (>int> i =>0>; i arr[i] = al.get(i); for (Integer x : arr) System.out.print(x + ' '); } }>

>

>

Uitvoer

10 20 30 40>

Methode 4: Streams-API van collecties in Java 8 gebruiken om te converteren naar een array van primitief int-type

char om Java te stringen

We kunnen deze streams()-methode van list en mapToInt() gebruiken om ArrayList te converteren naar een array van primitief gegevenstype int

int[] arr = list.stream().mapToInt(i ->i).toArray();>

Java




// Java program to convert a ArrayList to an array> // using streams()> import> java.io.*;> import> java.util.List;> import> java.util.ArrayList;> class> GFG {> >public> static> void> main(String[] args)> >{> >List al =>new> ArrayList();> >al.add(>10>);> >al.add(>20>);> >al.add(>30>);> >al.add(>40>);> >// ArrayList to Array Conversion> >int>[] arr = al.stream().mapToInt(i ->i).toArray();> >for> (>int> x : arr)> >System.out.print(x +>' '>);> >}> }>

>

>

Uitvoer

10 20 30 40>