java arraylist conversions other collections
qual è la differenza tra outer join e left join
Questo tutorial discute le conversioni di ArrayList in altre raccolte come Set, LinkedList, Lists, ecc. Insieme alle differenze tra queste raccolte:
Finora abbiamo visto quasi tutti i concetti relativi a ArrayList in Java. Oltre a creare e manipolare ArrayList utilizzando varie operazioni o metodi forniti dalla classe ArrayList, a volte è anche necessario convertire ArrayList in una o più raccolte.
=> Visita qui per imparare Java da zero.
In questo tutorial, discuteremo alcune delle conversioni da ArrayList ad altre raccolte che includono List, LinkedList, Vector, Set, ecc. Considereremo anche la conversione tra ArrayList e String. Dopo le conversioni, discuteremo anche delle differenze tra ArrayList e altre raccolte: Array, List, Vector, LinkedList, ecc.
Cosa imparerai:
- Conversione da ArrayList a stringa
- Conversione da stringa a ArrayList
- Converti elenco in ArrayList in Java
- Converti ArrayList da impostare in Java
- Converti set in ArrayList in Java
- Un array di ArrayList in Java
- Elenco di array in Java
- List Vs ArrayList in Java
- Vector vs ArrayList
- ArrayList vs LinkedList
- Domande frequenti
- Conclusione
- Lettura consigliata
Conversione da ArrayList a stringa
I seguenti metodi possono essere utilizzati per convertire ArrayList in String.
# 1) Utilizzo di un oggetto StringBuilder
import java.util.ArrayList; public class Main { public static void main(String args()) { //Create and initialize the ArrayList ArrayList strList = new ArrayList(); strList.add('Software'); strList.add('Testing'); strList.add('Help'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //define a stringbuilder object StringBuffer sb = new StringBuffer(); //append each ArrayList element to the stringbuilder object for (String str : strList) { sb.append(str + ' '); } //convert stringbuilder to string and print it. String myStr = sb.toString(); System.out.println('
String from ArrayList: ' + myStr); } }
Produzione:
The ArrayList: (Software, Testing, Help)
Stringa da ArrayList: Guida al test del software
Nel programma precedente, viene creato un oggetto StringBuilder. Quindi, utilizzando il ciclo forEach, ogni elemento nell'ArrayList viene aggiunto all'oggetto StringBuilder. Quindi l'oggetto StringBuilder viene convertito in una stringa. Notare che utilizzando il metodo 'append' di StringBuilder; puoi anche aggiungere un delimitatore appropriato alla stringa.
Nell'esempio precedente, abbiamo utilizzato lo spazio ('') come delimitatore.
# 2) Utilizzo del metodo String.join ()
Il metodo String.join () può essere utilizzato per convertire ArrayList in String. Qui puoi anche passare il delimitatore appropriato al metodo di join.
Il programma seguente lo dimostra.
import java.util.ArrayList; public class Main { public static void main(String() args) { // create and initialize the ArrayList ArrayList metroList = new ArrayList(); metroList.add('Delhi'); metroList.add('Mumbai'); metroList.add('Chennai'); metroList.add('Kolkata'); //print the ArrayList System.out.println('The ArrayList: ' + metroList); // Join with an empty delimiter to concat all strings. String resultStr = String.join(' ', metroList); System.out.println('
String converted from ArrayList: '+resultStr); } }
Produzione:
The ArrayList: (Delhi, Mumbai, Chennai, Kolkata)
Stringa convertita da ArrayList: Delhi Mumbai Chennai Kolkata
Puoi vedere che passiamo direttamente ArrayList come argomento al metodo String.join () insieme al delimitatore.
Per semplici String ArrayList, String.join () è il metodo migliore per convertire in String. Ma per oggetti ArrayLists più complessi, l'utilizzo di StringBuilder è più efficiente.
Conversione da stringa a ArrayList
Per convertire una stringa in ArrayList, ci sono due passaggi:
- La stringa viene suddivisa utilizzando la funzione split () e le sottostringhe (suddivise su un delimitatore appropriato) vengono memorizzate in un array di stringhe.
- L'array di stringhe ottenuto dalla divisione della stringa viene quindi convertito in ArrayList utilizzando il metodo 'asList ()' della classe Arrays.
Di seguito viene fornito il programma per convertire la stringa in ArrayList.
import java.util.ArrayList; import java.util.List; import java.util.Arrays; public class Main { public static void main(String args()){ //define a string String myStr = 'The string to ArrayList program'; //convert string to array using split function on spaces String strArray() = myStr.split(' '); //print the string System.out.println('The input string : ' + myStr); //declare an ArrayList List strList = new ArrayList(); //convert string array to ArrayList using asList method strList = Arrays.asList(strArray); //print the resultant ArrayList System.out.println('
The ArrayList from String:' + strList ); } }
Produzione:
La stringa di input: la stringa per il programma ArrayList
The ArrayList from String: (The, string, to, ArrayList, program)
Nel programma precedente, dividiamo la stringa in spazi e la raccogliamo in un array di stringhe. Questo array viene quindi convertito in un ArrayList di stringhe.
Converti elenco in ArrayList in Java
ArrayList implementa l'interfaccia List. Se vuoi convertire un List nella sua implementazione come ArrayList, puoi farlo utilizzando il metodo addAll dell'interfaccia List.
Il programma seguente mostra la conversione dell'elenco in ArrayList aggiungendo tutti gli elementi dell'elenco a ArrayList.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String a()){ //create a list & initiliaze it List collections_List = new ArrayList(); collections_List.add('ArrayList'); collections_List.add('Vector'); collections_List.add('LinkedList'); collections_List.add('Stack'); collections_List.add('Set'); collections_List.add('Map'); //print the list System.out.println('List contents: '+collections_List); //create an ArrayList ArrayList myList = new ArrayList(); //use addAll() method to add list elements to ArrayList myList.addAll(collections_List); //print the ArrayList System.out.println('
ArrayList after adding elements: '+myList); } }
Produzione:
Contenuto elenco: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList dopo l'aggiunta di elementi: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Converti ArrayList da impostare in Java
I metodi seguenti convertono un ArrayList in un Set.
# 1) Utilizzando un approccio iterativo tradizionale
Questo è l'approccio tradizionale. Qui, iteriamo l'elenco e aggiungiamo ogni elemento di ArrayList al set.
Nel programma seguente, abbiamo un ArrayList di string. Dichiariamo un HashSet di string. Quindi, utilizzando il ciclo forEach, iteriamo su ArrayList e aggiungiamo ogni elemento a HashSet.
In modo simile, possiamo anche convertire ArrayList in un treeSet.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //Add each ArrayList element to the set for (String x : colorsList) hSet.add(x); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
Produzione:
The ArrayList: (Rosso, Verde, Blu, Ciano, Magenta, Giallo)
HashSet ottenuto da ArrayList: (Red, Cyan, Blue, Yellow, Magenta, Green)
# 2) Utilizzo di Set Constructor
Il metodo successivo per convertire un ArrayList in un set utilizza il costruttore. In questo metodo, passiamo ArrayList come argomento al costruttore set e quindi inizializziamo l'oggetto set con elementi ArrayList.
Il programma seguente mostra l'uso di ArrayList nella creazione di un oggetto set.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a TreeSet Set tSet = new TreeSet(colorsList); //Print the TreeSet System.out.println('
TreeSet obtained from ArrayList: ' + tSet); } }
Produzione:
ArrayList: (Rosso, Verde, Blu, Ciano, Magenta, Giallo
TreeSet ottenuto da ArrayList: (Blue, Cyan, Green, Magenta, Red, Yellow)
# 3) Utilizzo del metodo addAll
È inoltre possibile utilizzare il metodo addAll di Set per aggiungere tutti gli elementi di ArrayList al set.
Il seguente programma utilizza il metodo addAll per aggiungere gli elementi di ArrayList a HashSet.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //use addAll method of HashSet to add elements of ArrayList hSet.addAll(colorsList); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
Produzione:
The ArrayList: (Rosso, Verde, Blu, Ciano, Magenta, Giallo)
HashSet ottenuto da ArrayList: (Red, Cyan, Blue, Yellow, Magenta, Green)
# 4) Utilizzo di Java 8 Stream
Gli stream sono le nuove aggiunte a Java 8. Questa classe stream fornisce un metodo per convertire ArrayList in stream e quindi impostare.
Il seguente programma Java dimostra l'uso del metodo della classe stream per convertire ArrayList in set.
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); // Convert ArrayList to set using stream Set set = colorsList.stream().collect(Collectors.toSet()); //Print the Set System.out.println('
Set obtained from ArrayList: ' + set); } }
Produzione:
The ArrayList: (Rosso, Verde, Blu, Ciano, Magenta, Giallo)
Set ottenuto da ArrayList: (Red, Cyan, Blue, Yellow, Magenta, Green)
Converti set in ArrayList in Java
Nell'ultima sezione, abbiamo visto la conversione di ArrayList in Set. Anche la conversione da Set a ArrayList utilizza gli stessi metodi descritti sopra con la differenza che la posizione del set e di ArrayList cambia.
Di seguito sono riportati esempi di programmazione per convertire Set in ArrayList. L'altra descrizione per ogni metodo rimane la stessa.
# 1) Approccio iterativo
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList ArrayList numList = new ArrayList(set.size()); //add each set element to the ArrayList using add method for (String str : set) numList.add(str); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Produzione:
Il set dato: (Uno, Due, Tre)
ArrayList ottenuto da Set: (One, Two, Three)
Nel programma precedente, iteriamo attraverso il set e ogni elemento set viene aggiunto all'arrayList.
# 2) Utilizzo di Constructor
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and pass set to the constructor List numList = new ArrayList(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Produzione:
Il set dato: (Uno, Due, Tre)
ArrayList ottenuto da Set: (One, Two, Three)
Il programma precedente crea un set e un ArrayList. L'oggetto ArrayList viene creato fornendo un oggetto set come argomento nel suo costruttore.
# 3) Utilizzo del metodo addAll
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList List numList = new ArrayList(); //use addAll method of ArrayList to add elements of set numList.addAll(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Produzione:
Il set dato: (Uno, Due, Tre)
ArrayList ottenuto da Set: (One, Two, Three)
Qui, usiamo il metodo addAll di ArrayList per aggiungere gli elementi dal set a ArrayList.
# 4) Utilizzo di Java 8 Stream
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and using stream method,assign stream of elements to ArrayList List numList = set.stream().collect(Collectors.toList()); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Produzione:
Il set dato: (Uno, Due, Tre)
ArrayList ottenuto da Set: (One, Two, Three)
Il programma precedente utilizza la classe stream per convertire Set in ArrayList.
Un array di ArrayList in Java
Un array di ArrayList come suggerisce il nome è costituito da ArrayLists come suoi elementi. Sebbene la funzione non venga utilizzata regolarmente, viene utilizzata quando è richiesto un utilizzo efficiente dello spazio di memoria.
Il seguente programma implementa un array di elenchi di array in Java.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //define and initialize a num_list List num_list = new ArrayList(); num_list.add('One'); num_list.add('Two'); num_list.add('Two'); //define and initialize a colors_list List colors_list = new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); //define Array of ArrayList with two elements List() arrayOfArrayList = new List(2); //add num_list as first element arrayOfArrayList(0) = num_list; //add colors_list as second element arrayOfArrayList(1) = colors_list; //print the contents of Array of ArrayList System.out.println('Contents of Array of ArrayList:'); for (int i = 0; i Produzione:
Contenuto di Array of ArrayList:
(Uno, due, due)
(Rosso, Verde, Blu)
Nel programma sopra, definiamo prima due elenchi. Quindi dichiariamo un array di due ArrayList. Ogni elemento di questo array è l'ArrayList definito in precedenza. Infine, il contenuto di un Array of ArrayList viene visualizzato utilizzando un ciclo for.
Elenco di array in Java
Proprio come abbiamo un Array of ArrayLists, possiamo anche avere ArrayList of Arrays. Qui, ogni singolo elemento di un ArrayList è un Array.
Il programma seguente mostra ArrayList of Arrays.
import java.util.*; public class Main { public static void main(String() args) { // declare ArrayList of String arrays ArrayList ArrayList_Of_Arrays = new ArrayList(); //define individual string arrays String() colors = { 'Red', 'Green', 'Blue' }; String() cities = { 'Pune', 'Mumbai', 'Delhi'}; //add each array as element to ArrayList ArrayList_Of_Arrays.add(colors); ArrayList_Of_Arrays.add(cities); // print ArrayList of Arrays System.out.println('Contents of ArrayList of Arrays:'); for (String() strArr : ArrayList_Of_Arrays) { System.out.println(Arrays.toString(strArr)); } } }
Produzione:
Contenuto di ArrayList of Arrays:
(Rosso, Verde, Blu)
(Pune, Mumbai, Delhi)
Il programma precedente mostra ArrayList of Arrays. Inizialmente, dichiariamo un ArrayList of String Arrays. Ciò significa che ogni elemento di ArrayList sarà uno String Array. Successivamente, definiamo due array di stringhe. Quindi ciascuno degli array viene aggiunto all'ArrayList. Infine, stampiamo il contenuto di ArrayList of Arrays.
Per stampare il contenuto, attraversiamo l'ArrayList usando il ciclo for. Per ogni iterazione, stampiamo il contenuto dell'elemento ArrayList che ha un Array utilizzando il metodo Arrays.toString ().
List Vs ArrayList in Java
Le tabelle seguenti mostrano alcune delle differenze tra un List e un ArrayList.
Elenco Lista di array L'elenco è un'interfaccia in Java ArrayList è una parte del framework Java Collection L'elenco è implementato come interfaccia ArrayList è implementato come una classe di raccolta Estende l'interfaccia della raccolta implementa l'interfaccia List ed estende AbstractList Parte dello spazio dei nomi System.Collection.generic Parte dello spazio dei nomi System.Collections Utilizzando List, è possibile creare un elenco di elementi a cui è possibile accedere utilizzando gli indici. Utilizzando ArrayList, possiamo creare un array dinamico di elementi o oggetti la cui dimensione si altera automaticamente con i cambiamenti nei contenuti.
Vector vs ArrayList
Di seguito sono riportate alcune delle differenze tra un vettore e un ArrayList.
Lista di array Lista collegata ArrayList implementa l'interfaccia List LinkedList implementa le interfacce List e Deque. L'archiviazione e l'accesso ai dati sono efficienti in ArrayList. LinkedList è bravo a manipolare i dati. ArrayList implementa internamente un array dinamico. LinkedList implementa internamente una lista doppiamente collegata. Poiché ArrayList implementa internamente l'array dinamico, l'aggiunta / eliminazione di elementi è lenta poiché è richiesto un grande spostamento di bit. LinkedList è più veloce per quanto riguarda l'aggiunta / rimozione di elementi poiché non è necessario lo spostamento di bit. Meno sovraccarico di memoria poiché in ArrayList vengono memorizzati solo i dati effettivi. Più sovraccarico di memoria poiché ogni nodo in LinkedList contiene i dati così come l'indirizzo al nodo successivo.
ArrayList vs LinkedList
Parliamo ora delle varie differenze tra un ArrayList e un LinkedList.
Lista di array Lista collegata ArrayList implementa l'interfaccia List LinkedList implementa le interfacce List e Deque. L'archiviazione e l'accesso ai dati sono efficienti in ArrayList. LinkedList è bravo a manipolare i dati. ArrayList implementa internamente un array dinamico. LinkedList implementa internamente una lista doppiamente collegata. Poiché ArrayList implementa internamente l'array dinamico, l'aggiunta / eliminazione di elementi è lenta poiché è richiesto un grande spostamento di bit. LinkedList è più veloce per quanto riguarda l'aggiunta / rimozione di elementi poiché non è necessario lo spostamento di bit. Meno sovraccarico di memoria poiché in ArrayList vengono memorizzati solo i dati effettivi. Più sovraccarico di memoria poiché ogni nodo in LinkedList contiene i dati così come l'indirizzo al nodo successivo.
Domande frequenti
D # 1) Come si converte un ArrayList in un Array in Java?
Risposta: Per convertire un ArrayList in un Array in Java, è possibile utilizzare il metodo toArray () dall'API ArrayList che converte un dato ArrayList in un Array.
Q # 2) Come dividi una stringa e la memorizzi in un ArrayList in Java?
Risposta: La stringa viene divisa utilizzando una funzione split (). Questo metodo restituisce un array di stringhe. Quindi utilizzando il metodo Arrays.asList (), l'array di stringhe può essere convertito in un ArrayList di stringhe.
D # 3) Qual è la dimensione predefinita di un ArrayList?
Risposta: Un oggetto ArrayList creato senza specificare la capacità ha una dimensione 0 poiché non ci sono elementi aggiunti all'elenco. Ma la capacità predefinita di questo ArrayList è 10.
D # 4) Qual è la differenza tra length () e size () di ArrayList?
Risposta: Un ArrayList non ha una proprietà o un metodo length (). Fornisce solo il metodo size () che restituisce il numero totale di elementi in ArrayList.
D # 5) Qual è la differenza tra la capacità e le dimensioni di ArrayList?
Risposta: ArrayList possiede sia capacità che dimensioni. La capacità è la dimensione totale di ArrayList o il numero totale di elementi che può contenere. La dimensione è il numero di elementi o posizioni che contengono dati.
Per esempio, se la capacità di ArrayList è 10 e la sua dimensione è 5, significa che un ArrayList può contenere fino a 10 elementi, ma al momento solo 5 posizioni contengono dati.
Conclusione
In questo tutorial, abbiamo discusso alcuni dei concetti aggiuntivi relativi a ArrayList come la conversione di ArrayList in una stringa, un elenco, un insieme e viceversa. Abbiamo anche discusso le differenze tra ArrayList e Vector, ArrayList e LinkedList, ecc.
Nel nostro prossimo tutorial, prenderemo un'altra raccolta e la impareremo a fondo.
=> Controlla qui per vedere qui i tutorial di formazione su Java dalla A alla Z.
Lettura consigliata
- Java String con String Buffer e String Builder Tutorial
- Java ArrayList - Come dichiarare, inizializzare e stampare un ArrayList
- Tutorial Java Reflection con esempi
- Tutorial Java String | Metodi Java String con esempi
- Thread Java con metodi e ciclo di vita
- Distribuzione Java: creazione ed esecuzione di file JAR Java
- Nozioni di base su Java: sintassi Java, classe Java e concetti principali di Java
- Java Virtual Machine: come JVM aiuta nell'esecuzione di applicazioni Java