covert list array
Questo tutorial spiega come convertire un elenco Java in array e altre raccolte. Include esempi per convertire un elenco in array, string, set e viceversa:
Nei nostri tutorial precedenti, abbiamo discusso i dettagli della raccolta di elenchi. Abbiamo visto le varie operazioni sulla lista, iteratori, ecc. Data una lista, possiamo convertire questa lista in qualsiasi altra raccolta o struttura di dati come stringhe, array, ArrayList, set, ecc.
=> Visita qui per l'esclusiva serie di tutorial di formazione Java.
Cosa imparerai:
Elenco conversioni
In questo caso, ciò che effettivamente facciamo è trasferire gli elementi da una raccolta / struttura a un'altra e, così facendo, stiamo effettivamente modificando il layout degli elementi poiché ogni raccolta o struttura di dati ha il proprio layout.
In questo tutorial, discuteremo alcune conversioni dall'elenco ad altre strutture di dati e viceversa.
Converti elenco in stringa
È possibile convertire facilmente l'elenco di elementi nella sua rappresentazione di stringa. Principalmente vorrai convertire un elenco di stringhe o caratteri in una rappresentazione di stringa.
Esistono vari metodi per convertire l'elenco in una stringa. I più popolari sono discussi di seguito.
# 1) Utilizzo del metodo toString
Questo è il metodo più semplice per convertire una lista in una stringa. In questo metodo, usi semplicemente il metodo 'toString' su un elenco che converte l'elenco in una rappresentazione di stringa.
Il programma seguente mostra l'implementazione del metodo toString.
import java.util.Arrays; import java.util.List; // Convert List of Characters to String in Java class Main { public static void main(String() args) { // create and initialize a character list List strList = Arrays.asList('H', 'e', 'l', 'l', 'o'); //convert list to string using toString method System.out.println('List converted to string representation:
' + strList.toString()); //replace comma between characters with blanks String string = strList.toString() .substring(1, 3 * strList.size() - 1) .replaceAll(', ', ''); // print string System.out.println('String representation by removing delimiters:
' + string); } }
Produzione:
In questo programma, puoi vedere che dopo aver convertito l'elenco dei caratteri in una rappresentazione di stringa, la stringa viene ulteriormente rifinita rimuovendo i caratteri di delimitazione da essa e rappresentandola come una singola parola.
# 2) Utilizzo della classe Collectors
Da Java 8 in poi, puoi utilizzare le API di flusso con la classe 'Collectors' per convertire l'elenco in una stringa.
Esempio:
import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize list List strList = Arrays.asList('W', 'o', 'r', 'l','d'); // convert list to string using collect and joining() method String string= strList.stream().map(String::valueOf).collect(Collectors.joining()); // print string System.out.println('List converted to string:' + string); } }
Produzione:
Nel programma precedente, utilizziamo le API di flusso, mappiamo i valori e quindi utilizzando il metodo joining () della classe Collectors e convertiamo l'elenco in stringa.
# 3) Utilizzo della classe StringBuilder
Il terzo metodo per convertire l'elenco in stringa consiste nell'usare un oggetto StringBuilder. Qui, ogni elemento nell'elenco viene aggiunto all'oggetto StringBuilder utilizzando un ciclo. Quindi l'oggetto StringBuilder viene convertito nella sua rappresentazione di stringa utilizzando il metodo toString.
Controllare il seguente programma per la dimostrazione.
import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize the list List strList = Arrays.asList('I', 'n', 'd', 'i', 'a'); // object of stringBuilder StringBuilder sb = new StringBuilder(); // use append method to append list element to StringBuilder object for (Character ch : strList) { sb.append(ch); } // convert StringBuilder object to string using toString() String string = sb.toString(); // print string System.out.println('List converted to string: ' + string); } }
Produzione:
Il programma precedente mostra l'utilizzo dell'oggetto StringBuilder a cui vengono aggiunti gli elementi nell'elenco. Quindi l'oggetto viene convertito in una stringa.
Conversione di un elenco in un array
Dato un elenco di elementi, è necessario convertire questo elenco in un array. A tale scopo, è possibile utilizzare uno dei metodi descritti di seguito.
# 1) Utilizzo di toArray
Il modo più semplice per convertire un elenco in un array è utilizzare il metodo 'toArray' dell'elenco.
Il seguente programma mostra questa implementazione del metodo toArray.
import java.util.*; public class Main { public static void main(String() args) { //create and initialize list List strList = new LinkedList(); strList.add('This'); strList.add('is'); strList.add('Java'); strList.add('Tutorial'); System.out.println('The given list:' + strList); //use toArray method to convert list to array String() strArray = strList.toArray(new String(0)); //print the array System.out.println('The Array from List: '); for (String val : strArray) System.out.print(val + ' '); } }
Produzione:
Nel programma precedente, abbiamo convertito un elenco di stringhe in un array di stringhe utilizzando il metodo 'toArray'.
# 2) Utilizzo di Java 8 Stream
miglior software di recupero per Windows 10
Il metodo successivo per convertire un elenco in un array consiste nell'usare le API stream di Java 8. In questo, l'elenco viene prima convertito in stream e poi utilizzando stream (). ToArray, viene convertito in un array.
Il seguente programma Java mostra questa conversione.
import java.util.*; class Main { public static void main (String()args) { //create and initialize the list List l_list = new LinkedList (); l_list.add ('Software'); l_list.add ('Testing'); l_list.add ('Help'); l_list.add ('Tutorial'); System.out.println('The given list:' + l_list); //Convert list to array using stream and toArray methods String() str_array = l_list.stream ().toArray (String()::new); //print the array System.out.println('The Array converted from list : '); for (String val:str_array) System.out.print (val + ' '); } }
Produzione:
Il programma precedente utilizza le API di flusso di Java 8 e converte l'elenco in un array. L'array viene quindi stampato utilizzando per ogni ciclo.
# 3) Utilizzo del metodo get
Questo è un altro metodo per convertire l'elenco in un array. In questo, usiamo il get () della lista che può essere usata per recuperare i singoli elementi della lista.
Di seguito è mostrato il programma per convertire l'elenco in un array utilizzando il metodo get ().
import java.io.*; import java.util.List; import java.util.LinkedList; class Main { public static void main (String() args) { List colors_list = new LinkedList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Yellow'); System.out.println('Given list: ' + colors_list); //define the array String() colors_array = new String(colors_list.size()); // get list elements into the array for (int i =0; i Produzione:

Nel programma sopra, abbiamo creato un array della stessa dimensione di un elenco. Quindi, in un ciclo, gli elementi dell'elenco vengono recuperati utilizzando il metodo get () e assegnati all'array.
Converti array in elenco
Poiché puoi convertire un elenco in un array, puoi anche convertire un array in un elenco in Java. Di seguito sono riportati alcuni dei metodi che consentono di convertire un array in un elenco.
# 1) Utilizzo del semplice codice Java
Questo è il metodo tradizionale per convertire un array in un elenco. Qui aggiungi ogni elemento dell'array all'elenco uno per uno usando un ciclo. Per questo viene utilizzato il metodo di aggiunta della lista.
Il seguente programma implementa il metodo tradizionale per convertire un array in un elenco.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'Python', 'C++', 'SQL', 'Perl' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // Create a List List strlist = new ArrayList(); // Iterate through the array and add each element to the list for (String val : strArray) { strlist.add(val); } // Print the List System.out.println('
List obtained from array: ' + strlist); } }
Produzione:

# 2) Utilizzo del metodo asList ()
Il metodo successivo per convertire un array in list è usare il metodo asList () della classe Arrays. Qui, puoi passare Array come argomento al metodo asList () e restituisce l'elenco ottenuto.
Il seguente programma lo mostra.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { //create and intialize array Integer() oddArray = { 1,3,5,7,9,11 }; //declare a list and use asList method to assign the array to list List oddList = Arrays.asList(oddArray); // Print the List System.out.println('List from array: ' + oddList); } }
Produzione:

Nel programma sopra, abbiamo una matrice di numeri dispari. Quindi creiamo un elenco di numeri interi e lo assegniamo all'output del metodo asList che è un elenco.
# 3) Utilizzo del metodo Collection.addAll ()
È inoltre possibile utilizzare il metodo addAll () della classe Collections poiché l'array e l'elenco sono entrambi parti del framework di raccolta in Java.
Il seguente programma mostra l'uso del metodo Collections.addAll () per convertire l'array in list.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'C++', 'C', 'Perl', 'Python' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // create a string list List myList = new ArrayList(); // Add array to list using Collections addAll method Collections.addAll(myList, strArray); // Print the List System.out.println('List obtained from array: ' + myList); } }
Produzione:

Qui abbiamo inizializzato un array. Abbiamo creato un elenco vuoto. Quindi il metodo Collections.addAll () viene utilizzato passando elenchi e array come argomento. L'esecuzione corretta di questo metodo avrà un elenco popolato con gli elementi dell'array.
# 4) Utilizzo di Java 8 Stream
Il prossimo approccio per convertire un array in un elenco consiste nell'utilizzare l'API Java 8 Stream e la classe Collectors. Qui l'array viene prima convertito in stream e quindi gli elementi vengono raccolti in un elenco utilizzando stream. Metodo di raccolta. L'elenco viene infine restituito.
Il programma seguente mostra l'implementazione che converte l'array in list utilizzando l'API Stream.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String colorsArray() = { 'Red', 'Green', 'Blue', 'Yellow', 'Magenta' }; // Print the Array System.out.println('Array: ' + Arrays.toString(colorsArray)); // convert the Array to List using stream () and Collectors class List colorslist = Arrays .stream(colorsArray) .collect(Collectors.toList()); // Print the List System.out.println('List from Array: ' + colorslist); } }
Produzione:

Nel programma sopra, viene creato un array di colori. Successivamente viene creato un elenco vuoto e quindi l'elenco ottenuto dall'array utilizzando l'API di flusso viene assegnato all'elenco.
Converti elenco in set
Un insieme è una raccolta non ordinata di elementi che non consente valori duplicati. Set fa parte del framework Java Collections. Puoi convertire un elenco in set e viceversa, se necessario.
In questa sezione vediamo alcuni dei metodi utilizzati per convertire un elenco in un set.
# 1) Utilizzando il metodo tradizionale
È possibile convertire l'elenco in set utilizzando il codice Java tradizionale. In questo, puoi creare un HashSet o un treeSet. Quindi, usando il metodo add, aggiungi ogni elemento dell'elenco al set in un ciclo.
Questa implementazione è mostrata di seguito.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List strList = Arrays.asList('Java', 'Perl', 'Python', 'C++', 'C'); //print the list System.out.println('The list : ' + strList); //create a set Set hashSet = new HashSet(); //add list elements to hashset for (String ele : strList) hashSet.add(ele); //print the set System.out.println('HashSet from list:'); for (String val : hashSet) System.out.print(val + ' '); } }
Produzione:

Nel programma sopra, puoi vedere che abbiamo creato un oggetto HashSet di tipo stringa. Quindi, utilizzando il ciclo for migliorato, ogni elemento dell'elenco viene aggiunto al set. Infine, il set viene stampato.
Lettura consigliata = >> HashSet in Java
# 2) Utilizzo di HashSet o del costruttore di alberi
Il metodo successivo utilizza un costruttore di set. Qui creiamo un costruttore di set (treeSet o HashSet). Un elenco viene passato a questo costruttore come argomento. Usando questo elenco, l'insieme viene costruito.
Controlla il programma seguente per questa implementazione.
import java.util.*; class Main { public static void main(String() args) { // Create a list of strings List strList = Arrays.asList('Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta'); System.out.println('Original List:' + strList); // Creating a hash set using constructor and pass list to the constructor Set hashSet = new HashSet(strList); System.out.println('
HashSet created from list:'); //print the hashSet for (String val : hashSet) System.out.print(val + ' '); //Create a treeset using constructor and pass list to the constructor Set treeSet = new TreeSet(strList); System.out.println('
TreeSet from list: '); //print the treeset for (String x : treeSet) System.out.print(x + ' '); } }
Produzione:

Nel programma sopra, creiamo sia HashSet che treeSet passando l'elenco come argomento. Infine, vengono visualizzati i contenuti sia di HashSet che del set di alberi.
# 3) Utilizzo del metodo addAll
Questo è lo stesso del metodo addAll delle raccolte che abbiamo visto prima. Qui il metodo addAll viene utilizzato per copiare il contenuto dell'elenco nel set.
Il seguente programma mostra l'utilizzo del metodo addAll.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List intList = Arrays.asList(1,3,5,7,9,11,13); System.out.println('Original List: ' + intList); //create a hashset Set hashSet = new HashSet(); //add elements of list to hashSet using addAll method hashSet.addAll(intList); System.out.println('HashSet created from list: '); //print the hashSet for (Integer val : hashSet) System.out.print(val + ' '); } }
Produzione:

Questo programma crea un oggetto HashSet. Quindi il metodo addAll viene richiamato sull'oggetto HashSet con l'elenco come parametro. Questo metodo copia il contenuto dell'elenco nel set.
# 4) Utilizzo di Java 8 Stream
Come già visto, puoi anche utilizzare gli stream Java 8 per convertire l'elenco in qualsiasi altra raccolta incluso il set. Devi usare il metodo stream (). Collect per farlo.
Il seguente programma mostra questa implementazione.
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a list of strings List colorsList = Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow'); System.out.println('Original List:' + colorsList); // Convert to set using stream and Collectors class toSet() method Set colorsSet = colorsList.stream().collect(Collectors.toSet()); System.out.println('The set from list:'); //print the set for (String x : colorsSet) System.out.print(x + ' '); }
Produzione:

Il programma di cui sopra è simile a quello mostrato nel caso di conversione dalla lista ad un array. Innanzitutto, l'elenco viene convertito in stream, quindi il metodo collect raccoglie gli elementi dello stream e li converte in set.
Ora che abbiamo visto vari metodi che eseguono la conversione dalla lista al set, vediamo i metodi che vengono usati per convertire il set alla lista.
Converti set in elenco
Analogamente al modo in cui converti un elenco in un set, puoi anche convertire un set in un elenco. È possibile utilizzare gli stessi metodi descritti sopra per questa conversione. L'unica differenza è che si cambiano le posizioni dell'elenco e impostate nel programma.
Di seguito sono riportati esempi di conversione da set a list per ciascun metodo.
# 1) Utilizzo di Java semplice
importjava.util.*; class Main { public static void main(String() args) { // Create a set(hashset) and initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the set System.out.println('The set elements:'); for (String x : hashSet) System.out.print(x + ' '); //create a list (ArrayList) List strList = new ArrayList(hashSet.size()); //traverse the set and add its elements to the list for (String x : hashSet) strList.add(x); //print the list System.out.println('
Created ArrayList:' + strList); } }
Produzione:

Il programma precedente dichiara e inizializza un set. Quindi crea un elenco e aggiunge ogni elemento dell'insieme all'elenco. Infine, stampa l'elenco.
# 2) Utilizzo dei costruttori
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Delhi'); hashSet.add('Mumbai'); hashSet.add('Chennai'); hashSet.add('Kolkata'); //print the Set System.out.println('The set :'); for(String str: hashSet) System.out.print(str + ' '); //pass hashset to linkedlist constructor List l_List = new LinkedList(hashSet); //print the linked list System.out.println ('
LinkedList from set: ' + l_List); } }
Produzione:

Qui puoi usare il costruttore della lista con un oggetto set come argomento. Copia tutti gli elementi dell'insieme nell'oggetto elenco.
# 3) Utilizzo del metodo addAll
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the Set System.out.println('The set: '); for(String x:hashSet) System.out.print(x + ' '); //create a list(ArrayList) List colorList = new ArrayList(); //use addAll method to add elements from set colorList.addAll(hashSet); //print the list System.out.println('
The ArrayList from set: ' + colorList); } }
Produzione:

In questo programma viene creato un oggetto elenco. Quindi, utilizzando il metodo Collections.addAll (), gli elementi del set vengono aggiunti all'elenco.
# 4) Utilizzo di Java 8 Stream
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize the set Set hashSet = new HashSet(); hashSet.add('Yellow'); hashSet.add('Magenta'); hashSet.add('Cyan'); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); //print the Set System.out.println('The set:'); for(String str : hashSet) System.out.print(str + ' '); //create a list and assign it elements of set through stream and Collectors class List strList = hashSet.stream().collect(Collectors.toList()); //print the list System.out.println('
List obtained from set: ' + strList); } }
Produzione:

È inoltre possibile utilizzare i flussi Java 8 e il metodo collect per convertire il set nell'elenco come mostrato nel programma sopra.
Elenco vs array
Discutiamo alcune delle differenze tra un array e un elenco.
Vettore Elenco L'array è una struttura dati di base in Java. L'elenco è un'interfaccia che fa parte del framework di raccolta in Java da cui è possibile estendere molte delle classi come LinkedList, ArrayList ecc. Ha dimensioni fisse La dimensione dell'elenco è dinamica. È possibile accedere agli elementi dell'array utilizzando (). I membri dell'elenco sono accessibili utilizzando metodi. L'array può avere tipi primitivi così come oggetti come suoi elementi. Gli elenchi possono contenere solo oggetti. Gli array possono utilizzare operatori con i suoi elementi. Gli elenchi non possono utilizzare operatori. Invece, elenca i metodi di utilizzo. Gli array non possono funzionare con i generici per garantire l'indipendenza dai tipi. Gli elenchi possono essere generici.
Domande frequenti
D # 1) Come si converte un elenco in un array in Java?
Risposta: Il metodo di base per convertire un elenco in un array in Java consiste nell'utilizzare il metodo 'toArray ()' dell'interfaccia Elenco.
La semplice chiamata di seguito converte l'elenco in un array.
Object() array = list.toArray();
Esistono anche altri metodi come discusso sopra per convertire l'elenco in un array.
D # 2) Un array è un elenco in Java?
Risposta: No. Un array è una struttura di base in Java con una lunghezza fissa. Non si estende dall'interfaccia dell'elenco. La struttura che si estende dall'interfaccia elenco e simile all'array è ArrayList.
D # 3) Come si converte un array in un elenco in Java?
Risposta: Uno dei metodi di base per convertire un array in un elenco in Java consiste nell'utilizzare il metodo asList () della classe Arrays.
List aList = Arrays.asList (myarray);
Oltre a questo, ci sono più metodi che convertono un array in un elenco come discusso in precedenza in questo tutorial.
D # 4) Qual è un set o un elenco più veloce in Java?
Risposta: Dipende dai dati archiviati. Se i dati sono univoci, l'elenco è migliore e più veloce. Se disponi di un set di dati di grandi dimensioni, scegli set. La struttura dell'insieme richiede solitamente una memoria 10 volte superiore rispetto agli elenchi.
D # 5) Qual è la differenza tra un ArrayList e un Set?
Risposta: L'elenco è una raccolta di elementi ordinati mentre l'insieme è una raccolta di elementi non ordinati. L'elenco può contenere elementi duplicati ma l'insieme non può avere elementi duplicati.
Conclusione
In questo tutorial, abbiamo visto varie conversioni di elenchi in array, set e viceversa. Abbiamo anche visto le principali differenze tra un array e un elenco.
In questo prossimo tutorial, discuteremo le classi di elenco come ArrayList, LinkedList, ecc. In dettaglio.
=> Dai un'occhiata alla guida di formazione Java perfetta qui.
Lettura consigliata
- Java Copy Array: come copiare / clonare un array in Java
- Java Array - Come stampare elementi di un array in Java?
- Elenco Java - Come creare, inizializzare e utilizzare l'elenco in Java
- Tipi di dati array: int Array, Double array, Array of Strings Etc.
- Array Java: dichiara, crea e inizializza un array in Java
- Come passare / restituire un array in Java
- Tutorial JAVA per principianti: oltre 100 tutorial video Java pratici
- Tutorial sulla lunghezza di array Java con esempi di codice