covert list array
Aquest tutorial explica com convertir la llista Java en matriu i altres col·leccions. Inclou exemples per convertir la llista en matriu, cadena, conjunt i viceversa:
En els nostres tutorials anteriors, vam discutir els detalls de la col·lecció de llistes. Hem vist les diverses operacions de la llista, iteradors, etc. Donada una llista, podem convertir aquesta llista en qualsevol altra col·lecció o estructura de dades com cadenes, matrius, ArrayList, set, etc.
=> Visiteu aquí la sèrie exclusiva de cursos de formació de Java.
Què aprendreu:
Llista de conversions
Aquí, el que realment fem és transferir els elements d’una col·lecció / estructura a una altra i, en fer-ho, estem canviant el disseny dels elements, ja que cada col·lecció o estructura de dades té el seu propi disseny.
En aquest tutorial, analitzarem algunes conversions de la llista a altres estructures de dades i viceversa.
Converteix la llista en cadena
Podeu convertir fàcilment la llista d’elements en la seva representació de cadenes. Sobretot voldreu convertir una llista de cadenes o caràcters a una representació de cadenes.
Hi ha diversos mètodes per convertir la llista en una cadena. A continuació, es comenten els més populars.
# 1) Ús del mètode toString
Aquest és el mètode més senzill per convertir la llista a cadena. En aquest mètode, simplement utilitzeu el mètode 'toString' en una llista que converteix la llista en una representació de cadena.
El programa següent mostra la implementació del mètode 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); } }
Sortida:
En aquest programa, podeu veure que després de convertir la llista de caràcters en una representació de cadena, la cadena es perfecciona més eliminant-ne els caràcters delimitadors i representant-la com una sola paraula.
# 2) Utilitzant la classe Collectors
A partir de Java 8, podeu fer servir API de flux amb la classe ‘Collectors’ per convertir la llista en una cadena.
Exemple:
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); } }
Sortida:
Al programa anterior, fem ús d’APIs de flux, mapem els valors i, a continuació, utilitzem el mètode unir () de la classe Collectors i convertim la llista en cadena.
# 3) Utilització de la classe StringBuilder
El tercer mètode per convertir la llista en cadena és utilitzar un objecte StringBuilder. Aquí, cada element de la llista s’afegeix a l’objecte StringBuilder mitjançant un bucle. A continuació, l'objecte StringBuilder es converteix a la seva representació de cadena mitjançant el mètode toString.
Consulteu el programa següent per a la demostració.
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); } }
Sortida:
El programa anterior mostra l'ús de l'objecte StringBuilder al qual s'afegeixen els elements de la llista. A continuació, l'objecte es converteix en una cadena.
Conversió de la llista a una matriu
Donada una llista d'elements, heu de convertir aquesta llista en una matriu. Per fer-ho, podeu utilitzar qualsevol dels mètodes que es descriuen a continuació.
# 1) Utilitzant toArray
La forma més senzilla de convertir una llista en una matriu és utilitzar el mètode 'toArray' de la llista.
El programa següent mostra aquesta implementació del mètode 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 + ' '); } }
Sortida:
Al programa anterior, hem convertit una llista de cadenes en una matriu de cadenes mitjançant el mètode 'toArray'.
# 2) Ús de Java 8 Stream
python selenium troba element per text
El següent mètode per convertir una llista a una matriu és mitjançant les API de flux de Java 8. En aquest, la llista es converteix primer en flux i després mitjançant stream (). A Array, es converteix en una matriu.
El següent programa Java mostra aquesta conversió.
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 + ' '); } }
Sortida:
El programa anterior utilitza API de flux de Java 8 i converteix la llista en una matriu. Després, la matriu s’imprimeix utilitzant per a cada bucle.
# 3) Ús del mètode get
Aquest és un altre mètode per convertir la llista en una matriu. En això, fem servir el get () de la llista que es pot utilitzar per recuperar elements individuals de la llista.
A continuació es mostra el programa per convertir la llista a una matriu mitjançant el mètode 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 Sortida:

Al programa anterior, vam crear una matriu de la mateixa mida que una llista. A continuació, en un bucle, els elements de la llista es recuperen mitjançant el mètode get () i s’assignen a la matriu.
Converteix matriu a llista
Com podeu convertir una llista en una matriu, també podeu convertir una matriu en una llista a Java. A continuació es detallen alguns dels mètodes amb els quals podeu convertir una matriu a una llista.
# 1) Ús de codi Java senzill
Aquest és el mètode tradicional de convertir una matriu en una llista. Aquí afegiu cada element de matriu a la llista un a un mitjançant un bucle. Per a això s'utilitza el mètode add de la llista.
El programa següent implementa el mètode tradicional per convertir la matriu a una llista.
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); } }
Sortida:

# 2) Utilitzant el mètode asList ()
El següent mètode per convertir una matriu a llista és mitjançant el mètode asList () de la classe Arrays. Aquí podeu passar Array com a argument al mètode asList () i retorna la llista obtinguda.
El programa següent ho 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); } }
Sortida:

Al programa anterior, tenim una sèrie de nombres senars. A continuació, creem una llista d'enters i l'assignem a la sortida del mètode asList que és una llista.
# 3) Utilitzant el mètode Collection.addAll ()
També podeu utilitzar el mètode addAll () de la classe Collections ja que la matriu i la llista són parts del marc de col·lecció de Java.
El programa següent mostra l'ús del mètode Collections.addAll () per convertir la matriu a una llista.
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); } }
Sortida:

Aquí hem inicialitzat una matriu. Hem creat una llista buida. A continuació, s’utilitza el mètode Collections.addAll () passant llistes i matrius com a argument. L'execució correcta d'aquest mètode tindrà una llista plena d'elements de matriu.
# 4) Ús de corrents de Java 8
El següent enfocament per convertir la matriu a la llista és utilitzar Java 8 Stream API i la classe Collectors. Aquí la matriu es converteix primer en flux i després es recopilen els elements en una llista mitjançant el flux. Mètode de recollida. La llista es torna finalment.
El programa següent mostra la implementació que converteix la matriu a una llista mitjançant 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); } }
Sortida:

Al programa anterior, es crea una matriu de colors. A continuació es crea una llista buida i, a continuació, s'assigna a la llista la llista obtinguda de la matriu mitjançant l'API de flux.
Converteix la llista en conjunt
Un conjunt és una col·lecció no ordenada d’elements que no permet duplicar valors. El conjunt forma part del marc Java Collections. Podeu convertir una llista a configurar i viceversa si cal.
En aquesta secció vegem alguns dels mètodes que s’utilitzen per convertir una llista en un conjunt.
# 1) Utilització del mètode tradicional
Podeu convertir la llista a configurar mitjançant el codi Java tradicional. En això, podeu crear un HashSet o un treeSet. A continuació, mitjançant el mètode add, afegiu cada element de llista al conjunt en un bucle.
Aquesta implementació es mostra a continuació.
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 + ' '); } }
Sortida:

Al programa anterior, podeu veure que hem creat un objecte HashSet de tipus string. Després, utilitzant el bucle millorat, cada element de la llista s'afegeix al conjunt. Finalment, s’imprimeix el conjunt.
Lectura recomanada = >> HashSet a Java
# 2) Utilitzar HashSet o Arbres Constructor
El següent mètode és utilitzar un constructor de conjunts. Aquí creem un constructor de conjunts (treeSet o HashSet). Es passa una llista a aquest constructor com a argument. Utilitzant aquesta llista, es construeix el conjunt.
Consulteu el programa següent per a aquesta implementació.
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 + ' '); } }
Sortida:

Al programa anterior, creem HashSet i treeSet passant la llista com a argument. Finalment, es mostra el contingut tant de HashSet com d’arbres.
# 3) Ús del mètode addAll
És el mateix que el mètode addAll de les col·leccions que vam veure abans. Aquí s’utilitza el mètode addAll per copiar el contingut de la llista al conjunt.
El programa següent mostra l’ús del mètode 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 + ' '); } }
Sortida:

Aquest programa crea un objecte HashSet. A continuació, s’invoca el mètode addAll a l’objecte HashSet amb la llista com a paràmetre. Aquest mètode copia el contingut de la llista al conjunt.
# 4) Ús de corrents de Java 8
Com ja s'ha vist, també podeu utilitzar els fluxos de Java 8 per convertir la llista a qualsevol altra col·lecció, inclosa la sèrie. Per fer-ho, heu d’utilitzar el mètode stream ().
El programa següent mostra aquesta implementació.
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 + ' '); }
Sortida:

El programa anterior és similar al que es mostra en el cas de la conversió de la llista a una matriu. En primer lloc, la llista es converteix en flux i després el mètode collect recopila els elements del flux i es converteix en conjunt.
Ara que hem vist diversos mètodes que fan la conversió de la llista al conjunt, vegem els mètodes que s’utilitzen per convertir el conjunt a la llista.
Converteix el conjunt a la llista
De manera similar a la forma en què podeu convertir llista a conjunt, també podeu convertir el conjunt a una llista. Podeu utilitzar els mateixos mètodes descrits anteriorment per a aquesta conversió. L'única diferència és que canvieu els llocs de la llista i el configureu al programa.
A continuació es mostren exemples de conversió de conjunt a llista per a cada mètode.
# 1) Ús de Java senzill
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); } }
Sortida:

El programa anterior declara i inicialitza un conjunt. A continuació, crea una llista i afegeix cada element de conjunt a la llista. Finalment, imprimeix la llista.
# 2) Ús de constructors
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); } }
Sortida:

Aquí podeu utilitzar el constructor de la llista amb un objecte set com a argument. Això copia tots els elements del conjunt a l'objecte de llista.
# 3) Ús del mètode 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); } }
Sortida:

En aquest programa, es crea un objecte de llista. A continuació, mitjançant el mètode Collections.addAll (), els elements del conjunt s’afegeixen a la llista.
# 4) Ús de 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); } }
Sortida:

També podeu utilitzar els fluxos Java 8 i el mètode collect per convertir el conjunt a la llista, tal com es mostra al programa anterior.
Llista de matrius vs.
Analitzem algunes de les diferències entre una matriu i una llista.
Matriu Llista La matriu és una estructura de dades bàsica a Java. La llista és una interfície que forma part del marc de col·lecció a Java des del qual es poden ampliar moltes de les classes com LinkedList, ArrayList, etc. Té una mida fixa La mida de la llista és dinàmica. Es pot accedir als elements de la matriu mitjançant (). S'accedeix als membres de la llista mitjançant mètodes. La matriu pot tenir tant tipus primitius com objectes com a elements. Les llistes només poden contenir objectes. Les matrius poden utilitzar operadors amb els seus elements. Les llistes no poden utilitzar operadors. En el seu lloc, enumera mètodes d’ús. Les matrius no poden funcionar amb genèrics per garantir la seguretat del tipus. Les llistes poden ser genèriques.
Preguntes freqüents
P # 1) Com es converteix una llista a una matriu a Java?
Resposta: El mètode bàsic per convertir una llista a una matriu a Java és utilitzar el mètode ‘toArray ()’ de la interfície de la llista.
La trucada simple que es mostra a continuació converteix la llista en una matriu.
Object() array = list.toArray();
També hi ha altres mètodes com es va comentar anteriorment per convertir la llista en una matriu.
P # 2) És una llista una matriu a Java?
Resposta: No. Una matriu és una estructura bàsica a Java amb una longitud fixa. No s’estén des de la interfície de la llista. L’estructura que s’estén des de la interfície de llista i similar a la matriu és ArrayList.
P # 3) Com es converteix una matriu a una llista a Java?
Resposta: Un dels mètodes bàsics per convertir una matriu a una llista a Java és utilitzar el mètode asList () de la classe Arrays.
List aList = Arrays.asList (myarray);
A part d'això, hi ha més mètodes que converteixen una matriu a una llista, tal com s'ha comentat anteriorment en aquest tutorial.
Q # 4) Quin és un conjunt o una llista més ràpida a Java?
Resposta: Depèn de les dades emmagatzemades. Si les dades són úniques, la llista és millor i més ràpida. Si teniu un conjunt de dades gran, aneu a cercar conjunts. L’estructura del conjunt sol requerir 10 vegades més memòria que les llistes.
Q # 5) Quina diferència hi ha entre un ArrayList i un Set?
Resposta: La llista és una col·lecció d'elements ordenats, mentre que el conjunt és una col·lecció d'elements no ordenats. La llista pot tenir elements duplicats, però el conjunt no pot tenir elements duplicats.
Conclusió
En aquest tutorial, hem vist diverses conversions de llistes a la matriu, conjunt i viceversa. També hem vist les principals diferències entre una matriu i una llista.
En aquest proper tutorial, analitzarem detalladament les classes de llista com ArrayList, LinkedList, etc.
=> Consulteu la guia de formació Java perfecta aquí.
Lectura recomanada
- Java Copy Array: Com copiar / clonar un array a Java
- Java Array - Com imprimir elements d'un array a Java?
- Llista Java: Com crear, inicialitzar i utilitzar una llista a Java
- Tipus de dades de matriu: matriu int, matriu doble, matriu de cadenes, etc.
- Matriu Java: declarar, crear i inicialitzar una matriu a Java
- Com passar / retornar una matriu a Java
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- Tutorial de longitud de matriu de Java amb exemples de codi