logo

Conversie ArrayList în Array în Java: Metode toArray().

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

arraylist-to-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 java
Ieș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>