Următoarele metode pot fi utilizate pentru conversia ArrayList în Array:

Metoda 1: Folosind metoda Object[] toArray().
Sintaxă:
public Object[] toArray()>
- Este specificat de toArray în Interfață Collection și Interfață List
- Acesta suprascrie toArray în clasa AbstractCollection
- Returnează o matrice care conține toate elementele din această listă în ordinea corectă.
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 +>' '>);> >}> }> |
arraylist.sort
>
>Ieșire
10 20 30 40>
Notă: metoda toArray() returnează o matrice de tip Object(Object[]). Trebuie să-l tipărim la Integer înainte de a folosi ca obiecte Integer. Dacă nu tipărim, obținem o eroare de compilare.
Luați în considerare următorul exemplu:
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);> >}> }> |
>
>
Ieșire:
19: error: incompatible types: Object[] cannot be converted to Integer[] Integer[] objects = al.toArray(); ^ 1 error>
Prin urmare, este recomandat să creați o matrice în care elementele List trebuie să fie stocate și să o transmiteți ca argument în metoda toArray() pentru a stoca elemente dacă este suficient de mare. În caz contrar, o nouă matrice de același tip este alocată în acest scop.
Metoda 2: Folosind T[] toArray(T[] a)
// 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)>
Rețineți că există un parametru de matrice și o valoare de returnare a matricei. Scopul principal al matricei transmise este de a spune tipul de matrice. Matricea returnată este de același tip ca și matricea transmisă.
- Dacă matricea transmisă are suficient spațiu, atunci elementele sunt stocate în această matrice în sine.
- Dacă matricea transmisă nu are suficient spațiu, este creată o nouă matrice cu același tip și dimensiunea listei date.
- Dacă matricea transmisă are mai mult spațiu, matricea este mai întâi umplută cu elemente de listă, apoi valorile nule sunt completate.
Aruncă ArrayStoreException dacă tipul de rulare al a nu este un supertip al tipului de rulare al fiecărui element din această listă.
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 +>' '>);> >}> }> |
>
>
cum se actualizează în javaIeșire
10 20 30 40>
Notă: Dacă matricea specificată este nulă, atunci va arunca NullpointerException. Vezi asta de exemplu.
Metoda 3: Metoda manuală pentru a converti ArrayList folosind metoda get().
Putem folosi această metodă dacă nu dorim să folosim java în metoda construită toArray(). Aceasta este o metodă manuală de copiere a tuturor elementelor ArrayList în String Array[].
// 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 + ' '); } }> |
>
>Ieșire
10 20 30 40>
Metoda 4: Utilizarea fluxurilor API de colecții în java 8 pentru a converti în matrice de tip int primitiv
Putem folosi această metodă streams() de listă și mapToInt() pentru a converti ArrayList în matrice de tip de date primitive 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 +>' '>);> >}> }> |
>
rând și coloană
>Ieșire
10 20 30 40>