java arraylist conversions other collections
Aquest tutorial tracta les conversions d'ArrayList a altres col·leccions com Set, LinkedList, Lists, etc. juntament amb les diferències entre aquestes col·leccions:
Fins ara hem vist pràcticament tots els conceptes relacionats amb ArrayList a Java. A part de crear i manipular ArrayList mitjançant diverses operacions o mètodes proporcionats per la classe ArrayList, de vegades també és necessari convertir ArrayList a una o més col·leccions.
=> Visiteu aquí per aprendre Java des de zero.
En aquest tutorial, analitzarem algunes de les conversions d’ArrayList a altres col·leccions que inclouen List, LinkedList, Vector, Set, etc. També considerarem la conversió entre ArrayList i String. Després de les conversions, també discutirem les diferències entre ArrayLists i altres col·leccions: Arrays, List, Vector, LinkedList, etc.
Què aprendreu:
- Conversió de matriu a llista de cadenes
- Conversió de cadena a llista de matrius
- Converteix la llista a ArrayList a Java
- Converteix ArrayList per establir-lo a Java
- Converteix el conjunt a ArrayList a Java
- Una matriu d'ArrayList a Java
- Llista de matrius a Java
- Llista Vs ArrayList a Java
- Vector Vs ArrayList
- ArrayList vs LinkedList
- Preguntes freqüents
- Conclusió
- Lectura recomanada
Conversió de matriu a llista de cadenes
Es poden utilitzar els mètodes següents per convertir ArrayList a String.
# 1) Utilitzar un objecte 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); } }
Sortida:
The ArrayList: (Programari, proves, ajuda)
Cadena d'ArrayList: ajuda de proves de programari
Al programa anterior es crea un objecte StringBuilder. A continuació, utilitzant el bucle forEach, cada element de l'ArrayList s'afegeix a l'objecte StringBuilder. A continuació, l'objecte StringBuilder es converteix en una cadena. Tingueu en compte que mitjançant el mètode ‘append’ de StringBuilder; també podeu afegir un delimitador adequat a la cadena.
A l'exemple anterior, hem utilitzat l'espai ('') com a delimitador.
# 2) Utilitzant el mètode String.join ()
El mètode String.join () es pot utilitzar per convertir ArrayList a String. Aquí també podeu passar el delimitador adequat al mètode de combinació.
El programa següent ho demostra.
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); } }
Sortida:
The ArrayList: (Delhi, Bombai, Chennai, Calcuta)
Cadena convertida d'ArrayList: Delhi Mumbai Chennai Kolkata
Podeu veure que passem directament l'ArrayList com a argument al mètode String.join () juntament amb el delimitador.
Per a les cadenes ArrayLists simples, String.join () és el millor mètode per convertir a String. Però per a objectes ArrayLists més complexos, utilitzar StringBuilder és més eficient.
Conversió de cadena a llista de matrius
Per convertir una cadena a ArrayList, hi ha dos passos:
- La cadena es divideix mitjançant la funció split () i les subcadenes (dividides en el delimitador adequat) s’emmagatzemen en una matriu de cadenes.
- A continuació, la matriu de cadena obtinguda en dividir la cadena es converteix a ArrayList mitjançant el mètode ‘asList ()’ de la classe Arrays.
A continuació es mostra el programa per convertir una cadena a 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 ); } }
Sortida:
La cadena d'entrada: la cadena al programa ArrayList
ArrayList des de la cadena: (La cadena, a, ArrayList, programa)
Al programa anterior, dividim la cadena en espais i la recollim en una matriu de cadenes. A continuació, aquesta matriu es converteix en una llista de matrius ArrayList.
Converteix la llista a ArrayList a Java
ArrayList implementa la interfície de la llista. Si voleu convertir una llista a la seva implementació com ArrayList, podeu fer-ho mitjançant el mètode addAll de la interfície de la llista.
El programa següent mostra la conversió de la llista a ArrayList afegint tots els elements de la llista 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); } }
Sortida:
Contingut de la llista: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList després d'afegir elements: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Converteix ArrayList per establir-lo a Java
Els mètodes següents converteixen una ArrayList en un conjunt.
com crear una matriu de cadena java
# 1) Utilitzar un enfocament iteratiu tradicional
Aquest és l'enfocament tradicional. Aquí, recorrem la llista i afegim cada element de l'ArrayList al conjunt.
Al programa següent, tenim una ArrayList de cadena. Declarem un HashSet de cadena. A continuació, utilitzant el bucle forEach, repetim la llista Array i afegim cada element al HashSet.
De manera similar, també podem convertir ArrayList a 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); } }
Sortida:
La llista de matrius: (vermell, verd, blau, cian, magenta, groc)
HashSet obtingut d'ArrayList: (vermell, cian, blau, groc, magenta, verd)
# 2) Utilitzar Set Constructor
El següent mètode per convertir una ArrayList a un conjunt és utilitzar el constructor. En aquest mètode, passem l'ArrayList com a argument al constructor de conjunts i inicialitzem l'objecte de conjunt amb elements ArrayList.
El programa següent mostra l'ús d'ArrayList en la creació d'un objecte conjunt.
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); } }
Sortida:
La llista de matrius: (vermell, verd, blau, cian, magenta, groc
Conjunt d'arbres obtingut d'ArrayList: (Blau, cian, verd, magenta, vermell, groc)
Preguntes i respostes de l'entrevista j2ee per a persones amb experiència
# 3) Ús del mètode addAll
També podeu utilitzar el mètode addAll de Set per afegir tots els elements d'ArrayList al conjunt.
El programa següent utilitza el mètode addAll per afegir els elements d'ArrayList al 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); } }
Sortida:
La llista de matrius: (vermell, verd, blau, cian, magenta, groc)
HashSet obtingut d'ArrayList: (vermell, cian, blau, groc, magenta, verd)
# 4) Ús de Java 8 Stream
Els fluxos són les noves addicions a Java 8. Aquesta classe de flux proporciona un mètode per convertir ArrayList en flux i després configurar-lo.
El programa Java següent mostra l’ús del mètode de la classe de flux per convertir ArrayList a configurar.
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); } }
Sortida:
La llista de matrius: (vermell, verd, blau, cian, magenta, groc)
Conjunt obtingut d'ArrayList: (vermell, cian, blau, groc, magenta, verd)
Converteix el conjunt a ArrayList a Java
A l'última secció, hem vist la conversió d'ArrayList a Set. La conversió de Set a ArrayList també utilitza els mateixos mètodes que els descrits anteriorment amb la diferència que canvia la posició del conjunt i ArrayList.
A continuació es mostren exemples de programació per convertir Set a ArrayList. L’altra descripció de cada mètode continua sent la mateixa.
# 1) Enfocament iteratiu
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); } }
Sortida:
El conjunt donat: (Un, Dos, Tres)
ArrayList obtingut del conjunt: (Un, Dos, Tres)
Al programa anterior, recorrem el conjunt i cada element del conjunt s'afegeix a l'ArrayList.
# 2) Utilitzar 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); } }
Sortida:
El conjunt donat: (Un, Dos, Tres)
ArrayList obtingut del conjunt: (Un, Dos, Tres)
El programa anterior crea un conjunt i una ArrayList. L'objecte ArrayList es crea proporcionant un objecte conjunt com a argument al seu constructor.
# 3) Ús del mètode 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); } }
Sortida:
El conjunt donat: (Un, Dos, Tres)
ArrayList obtingut del conjunt: (Un, Dos, Tres)
Aquí, fem servir el mètode addAll d'ArrayList per afegir els elements del conjunt a l'ArrayList.
# 4) Ús de 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); } }
Sortida:
El conjunt donat: (Un, Dos, Tres)
ArrayList obtingut del conjunt: (Un, Dos, Tres)
El programa anterior utilitza la classe de flux per convertir Set a ArrayList.
Una matriu d'ArrayList a Java
Un Array of ArrayList com el seu nom indica consisteix en ArrayLists com a elements. Tot i que la funció no s’utilitza regularment, s’utilitza quan es requereix un ús eficient de l’espai de memòria.
El programa següent implementa una matriu d'ArrayLists a 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 Sortida:
quina és la millor aplicació de descàrrega de mp3 per a Android
Contingut d'Array of ArrayList:
(Un, dos, dos)
(Vermell, verd, blau)

Al programa anterior, primer definim dues llistes. A continuació, declarem una matriu de dos ArrayList. Cada element d'aquesta matriu és l'ArrayList definit anteriorment. Finalment, el contingut d'una matriu d'ArrayList es mostra mitjançant un bucle for.
Llista de matrius a Java
De la mateixa manera que tenim un Array of ArrayLists, també podem tenir ArrayList of Arrays. Aquí, cada element individual d'una ArrayList és un Array.
El programa següent 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)); } } }
Sortida:
Contingut d'ArrayList of Arrays:
(Vermell, verd, blau)
(Pune, Bombai, Delhi)

El programa anterior mostra ArrayList of Arrays. Inicialment, declarem una ArrayList of String Arrays. Això significa que cada element d'ArrayList serà un array de cadenes. A continuació, definim dues matrius de cadenes. A continuació, cadascuna de les matrius s'afegeix a la llista Array. Finalment, imprimim el contingut d’ArrayList of Arrays.
Per imprimir el contingut, recorrem l'ArrayList utilitzant el bucle for. Per a cada iteració, imprimim el contingut de l'element ArrayList que té una matriu mitjançant el mètode Arrays.toString ().
Llista Vs ArrayList a Java
Les taules següents mostren algunes de les diferències entre una llista i una matriu.
Llista ArrayList La llista és una interfície a Java ArrayList forma part del marc Java Collection La llista s’implementa com a interfície ArrayList s’implementa com a classe de col·lecció Amplia la interfície de col·lecció implementa la interfície de la llista i amplia AbstractList Part de l'espai de noms System.Collection.generic Part de l’espai de noms System.Collections Mitjançant la llista, es pot crear una llista d'elements als quals es pot accedir mitjançant índexs. Mitjançant ArrayList, podem crear una matriu dinàmica d’elements o objectes la mida dels quals es modifica automàticament amb els canvis de contingut.
Vector Vs ArrayList
A continuació es detallen algunes de les diferències entre un Vector i una ArrayList.
ArrayList Llista enllaçada ArrayList implementa la interfície de llista LinkedList implementa interfícies List i Deque. L’emmagatzematge i l’accés de dades són eficients a ArrayList. LinkedList és bo en la manipulació de dades. ArrayList implementa internament una matriu dinàmica. LinkedList implementa internament una llista doblement enllaçada. Atès que ArrayList implementa internament una matriu dinàmica, l'addició / supressió d'elements és lenta, ja que es necessita un gran desplaçament de bits. LinkedList és més ràpid pel que fa a l'addició / eliminació d'elements, ja que no cal canviar de bits. Menys despeses de memòria ja que a ArrayList només s’emmagatzemen dades reals. Més despeses de memòria ja que cada node de LinkedList conté dades i l'adreça del node següent.
ArrayList vs LinkedList
Analitzem ara les diverses diferències entre una ArrayList i una LinkedList.
ArrayList Llista enllaçada ArrayList implementa la interfície de llista LinkedList implementa interfícies List i Deque. L’emmagatzematge i l’accés de dades són eficients a ArrayList. LinkedList és bo en la manipulació de dades. ArrayList implementa internament una matriu dinàmica. LinkedList implementa internament una llista doblement enllaçada. Atès que ArrayList implementa internament una matriu dinàmica, l'addició / supressió d'elements és lenta, ja que es necessita un gran desplaçament de bits. LinkedList és més ràpid pel que fa a l'addició / eliminació d'elements, ja que no cal canviar de bits. Menys despeses de memòria ja que a ArrayList només s’emmagatzemen dades reals. Més despeses de memòria ja que cada node de LinkedList conté dades i l'adreça del node següent.
Preguntes freqüents
P # 1) Com es converteix un ArrayList a un Array a Java?
Resposta: Per convertir un ArrayList a un Array a Java, es pot utilitzar el mètode toArray () de l'API ArrayList que converteix un ArrayList determinat en un Array.
Q # 2) Com es pot dividir una cadena i emmagatzemar-la en una ArrayList a Java?
Resposta: La cadena es divideix mitjançant una funció split (). Aquest mètode retorna una matriu de cadenes. A continuació, mitjançant el mètode Arrays.asList (), la matriu de cadenes es pot convertir en una llista de cadenes ArrayList.
P # 3) Quina és la mida per defecte d'una ArrayList?
Resposta: Un objecte ArrayList creat sense especificar la capacitat té una mida 0 ja que no hi ha elements afegits a la llista. Però la capacitat per defecte d’aquest ArrayList és 10.
Q # 4) Quina diferència hi ha entre length () i size () d'ArrayList?
Resposta: Un ArrayList no té una propietat o mètode length (). Proporciona només el mètode size () que retorna el nombre total d'elements a l'ArrayList.
P # 5) Quina diferència hi ha entre la capacitat i la mida d'ArrayList?
Resposta: ArrayList posseeix capacitat i mida. La capacitat és la mida total de l'ArrayList o el nombre total d'elements que pot contenir. La mida és el nombre d'elements o ubicacions que contenen dades.
Per exemple, si la capacitat d'ArrayList és de 10 i la seva mida és de 5, això significa que una ArrayList pot contenir fins a 10 elements, però actualment només hi ha dades a 5 ubicacions.
Conclusió
En aquest tutorial, hem discutit alguns dels conceptes addicionals relacionats amb ArrayList, com ara convertir ArrayList a una cadena, llista, conjunt i viceversa. També vam discutir les diferències entre ArrayList i Vector, ArrayList i LinkedList, etc.
Al nostre proper tutorial, agafarem una altra col·lecció i l’aprendrem a fons.
=> Consulteu aquí per veure aquí A-Z de tutorials de formació.
Lectura recomanada
- Java String amb buffer de cadenes i tutorial de Generador de cadenes
- Java ArrayList: com declarar, inicialitzar i imprimir una llista de matrius
- Tutorial de reflexió de Java amb exemples
- Tutorial de cadenes de Java | Mètodes de cadena Java amb exemples
- Fils de Java amb mètodes i cicle de vida
- Desplegament de Java: creació i execució del fitxer JAR de Java
- Conceptes bàsics de Java: sintaxi de Java, Java Class i conceptes bàsics de Java
- Màquina virtual Java: com ajuda JVM a executar aplicacions Java