covert list array
Acest tutorial explică cum să convertiți lista Java în matrice și alte colecții. Include exemple de convertire a listei în matrice, șir, set și invers:
În tutorialele noastre anterioare, am discutat detaliile colecției de liste. Am văzut diferitele operații din listă, iteratori etc. Având în vedere o listă, putem converti această listă în orice alte colecții sau structuri de date precum șiruri, matrici, ArrayList, set etc.
=> Vizitați aici pentru seria exclusivă de instruire Java.
Ce veți învăța:
Listează conversiile
Aici, ceea ce facem de fapt este să transferăm elementele dintr-o colecție / structură în alta și, făcând acest lucru, schimbăm de fapt aspectul elementelor, deoarece fiecare colecție sau structură de date are propriul aspect.
În acest tutorial, vom discuta câteva conversii din listă către alte structuri de date și viceversa.
Convertiți lista în șir
Puteți converti cu ușurință lista de elemente în reprezentarea sa de șiruri. În principal, veți dori să convertiți o listă de șiruri sau caractere într-o reprezentare de șir.
Există diverse metode de conversie a listei într-un șir. Cele mai populare sunt discutate mai jos.
# 1) Folosind metoda toString
Aceasta este cea mai simplă metodă de a converti lista în șir. În această metodă, pur și simplu utilizați metoda „toString” pe o listă care convertește lista într-o reprezentare șir.
Programul de mai jos prezintă implementarea metodei 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); } }
Ieșire:
În acest program, puteți vedea că după convertirea listei de caractere într-o reprezentare de șir, șirul este rafinat în continuare prin eliminarea caracterelor delimitate din acesta și reprezentarea acestuia ca un singur cuvânt.
# 2) Utilizarea clasei Colecționari
Începând cu Java 8, puteți utiliza API-uri de flux cu clasa „Colecționari” pentru a converti lista într-un șir.
Exemplu:
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); } }
Ieșire:
În programul de mai sus, facem uz de API-uri de flux, mapăm valorile și apoi folosim metoda join () din clasa Collectors și convertim lista în șir.
# 3) Utilizarea clasei StringBuilder
A treia metodă de conversie a listei în șir este folosirea unui obiect StringBuilder. Aici, fiecare element din listă este atașat la obiectul StringBuilder folosind o buclă. Apoi obiectul StringBuilder este convertit în reprezentarea sa de șiruri folosind metoda toString.
Verificați următorul program pentru demonstrație.
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); } }
Ieșire:
Programul de mai sus arată utilizarea obiectului StringBuilder la care sunt atașate elementele din listă. Apoi obiectul este convertit într-un șir.
Conversia listei într-o matrice
Având în vedere o listă de elemente, trebuie să convertiți această listă într-o matrice. Pentru a face acest lucru, puteți utiliza oricare dintre metodele descrise mai jos.
# 1) Folosind toArray
Cel mai simplu mod de a converti o listă într-o matrice este de a utiliza metoda „toArray” din listă.
Următorul program arată această implementare a metodei 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 + ' '); } }
Ieșire:
În programul de mai sus, am convertit o listă de șiruri într-o matrice de șiruri folosind metoda „toArray”.
# 2) Utilizarea fluxului Java 8
întrebări de interviu pentru biroul de asistență de nivel 1
Următoarea metodă pentru a converti o listă într-o matrice este utilizând API-urile de flux din Java 8. În aceasta, lista este convertită mai întâi în flux și apoi folosind stream ().
Următorul program Java arată această conversie.
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 + ' '); } }
Ieșire:
Programul de mai sus utilizează API-uri de flux Java 8 și convertește lista într-o matrice. Matricea este apoi tipărită folosind pentru fiecare buclă.
# 3) Folosind metoda get
Aceasta este o altă metodă de conversie a listei într-o matrice. În aceasta, folosim get () al listei care poate fi folosit pentru a recupera elemente individuale ale listei.
Programul pentru a converti lista într-o matrice folosind metoda get () este prezentat mai jos.
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 Ieșire:

În programul de mai sus, am creat o matrice de aceeași dimensiune ca o listă. Apoi într-o buclă, elementele listei sunt recuperate folosind metoda get () și atribuite matricei.
Convertiți matricea în listă
Deoarece puteți converti o listă într-o matrice, puteți converti, de asemenea, o matrice într-o listă în Java. Mai jos sunt prezentate câteva dintre metodele prin care puteți converti o matrice într-o listă.
# 1) Folosind cod Java simplu
Aceasta este metoda tradițională de a converti o matrice într-o listă. Aici adăugați fiecare element matrice la listă unul câte unul folosind o buclă. Pentru aceasta se folosește metoda de adăugare a listei.
Următorul program implementează metoda tradițională de a converti matricea într-o listă.
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); } }
Ieșire:

# 2) Folosind metoda asList ()
Următoarea metodă de conversie a unui tablou în listă este folosind metoda asList () din clasa Arrays. Aici, puteți trece Array ca argument la metoda asList () și returnează lista obținută.
Următorul program arată acest lucru.
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); } }
Ieșire:

În programul de mai sus, avem o serie de numere impare. Apoi creăm o listă de numere întregi și o atribuim la ieșirea metodei asList care este o listă.
# 3) Folosind metoda Collection.addAll ()
De asemenea, puteți utiliza metoda addAll () a clasei Colecții, deoarece matricea și lista sunt ambele părți ale cadrului de colecție din Java.
Următorul program arată utilizarea metodei Collections.addAll () pentru a converti matricea în 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); } }
Ieșire:

Aici am inițializat o matrice. Am creat o listă goală. Apoi metoda Collections.addAll () este utilizată prin trecerea listelor și a matricei ca argument. Executarea cu succes a acestei metode va avea o listă populată cu elementele matrice.
# 4) Utilizarea fluxurilor Java 8
Următoarea abordare pentru a converti matricea în listă este folosind Java 8 Stream API și clasa Collectors. Aici matricea este mai întâi convertită în flux și apoi elementele sunt colectate într-o listă folosind flux. Metoda de colectare. Lista este returnată în cele din urmă.
Următorul program arată implementarea care convertește matricea în listă folosind Stream API.
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); } }
Ieșire:

În programul de mai sus, este creată o gamă de culori. În continuare se creează o listă goală și apoi lista obținută din matrice utilizând fluxul API este alocată listei.
Convertiți lista în set
Un set este o colecție neordonată de elemente care nu permite duplicarea valorilor. Set face parte din cadrul Java Collections. Puteți converti o listă în set și invers, dacă este necesar.
În această secțiune să vedem câteva dintre metodele utilizate pentru a converti o listă într-un set.
# 1) Folosind metoda tradițională
Puteți converti lista în setări folosind codul Java tradițional. În aceasta, puteți crea un HashSet sau un treeSet. Și apoi folosind metoda add, adăugați fiecare element de listă la set într-o buclă.
Această implementare este prezentată mai jos.
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 + ' '); } }
Ieșire:

În programul de mai sus, puteți vedea că am creat un obiect HashSet de tip șir. Apoi, utilizând îmbunătățit pentru buclă, fiecare element al listei este adăugat la set. În cele din urmă, setul este tipărit.
Lectură recomandată = >> HashSet în Java
# 2) Folosind HashSet sau arbore Constructor
Următoarea metodă este utilizarea unui constructor de seturi. Aici creăm un constructor de seturi (treeSet sau HashSet). O listă este transmisă acestui constructor ca argument. Folosind această listă, setul este construit.
Verificați programul de mai jos pentru această implementare.
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 + ' '); } }
Ieșire:

În programul de mai sus, creăm atât HashSet, cât și treeSet, trecând lista ca argument. În cele din urmă, este afișat conținutul atât al HashSet, cât și al copacului.
# 3) Utilizarea metodei addAll
Aceasta este la fel ca metoda addAll a colecțiilor pe care am văzut-o anterior. Aici metoda addAll este utilizată pentru a copia conținutul listei în set.
Următorul program arată utilizarea metodei 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 + ' '); } }
Ieșire:

Acest program creează un obiect HashSet. Apoi, metoda addAll este invocată pe obiectul HashSet cu lista ca parametru. Această metodă copiază conținutul listei în set.
# 4) Utilizarea fluxurilor Java 8
După cum sa văzut deja, puteți utiliza și fluxurile Java 8 pentru a converti lista în orice altă colecție, inclusiv set. Pentru a face acest lucru, trebuie să utilizați metoda stream ().
Următorul program arată această implementare.
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 + ' '); }
Ieșire:

Programul de mai sus este similar cu cel prezentat în cazul conversiei din listă într-o matrice. În primul rând, lista este convertită în flux și apoi metoda de colectare colectează elementele fluxului și se convertește în set.
Acum că am văzut diferite metode care efectuează conversia din listă în set, să vedem metodele care sunt folosite pentru a converti setul în listă.
Convertiți setul în listă
Similar cu modul în care convertiți lista în set, puteți converti setul într-o listă. Puteți utiliza aceleași metode descrise mai sus pentru această conversie. Singura diferență este că schimbați locurile listei și le setați în program.
Mai jos sunt exemple de conversie din set în listă pentru fiecare metodă.
# 1) Folosind Java simplu
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); } }
Ieșire:

Programul de mai sus declară și inițializează un set. Apoi creează o listă și adaugă fiecare element set la listă. În cele din urmă, imprimă lista.
# 2) Utilizarea constructorilor
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); } }
Ieșire:

Aici, puteți utiliza constructorul listei cu un obiect set ca argument. Aceasta copiază toate elementele setate în obiectul listei.
# 3) Utilizarea metodei 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); } }
Ieșire:

În acest program, este creat un obiect listă. Apoi folosind metoda Collections.addAll (), elementele setului sunt adăugate la listă.
# 4) Utilizarea fluxului Java 8
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); } }
Ieșire:

De asemenea, puteți utiliza fluxurile Java 8 și metoda de colectare pentru a converti setul în listă, așa cum se arată în programul de mai sus.
Array Vs List
Să discutăm câteva dintre diferențele dintre o matrice și o listă.
Matrice Listă Matricea este o structură de date de bază în Java. Lista este o interfață care face parte din cadrul de colectare în Java de la care multe dintre clase pot fi extinse precum LinkedList, ArrayList etc. Are dimensiune fixă Dimensiunea listei este dinamică. Elementele matricei pot fi accesate folosind (). Membrii listei sunt accesați folosind metode. Matricea poate avea tipuri primitive, precum și obiecte ca elemente. Listele pot conține numai obiecte. Tablourile pot utiliza operatori cu elementele sale. Listele nu pot utiliza operatori. În schimb, listează metode de utilizare. Tablourile nu pot funcționa cu generice pentru a asigura siguranța tipului. Listele pot fi generice.
întrebări frecvente
Q # 1) Cum convertiți o listă într-o matrice în Java?
Răspuns: Metoda de bază pentru a converti o listă într-o matrice în Java este utilizarea metodei „toArray ()” a interfeței List.
Apelul simplu de mai jos convertește lista într-o matrice.
Object() array = list.toArray();
Există, de asemenea, alte metode descrise mai sus pentru a converti lista într-o matrice.
Q # 2) Este o matrice o listă în Java?
Răspuns: Nu. O matrice este o structură de bază în Java cu o lungime fixă. Nu se extinde din interfața listei. Structura care se extinde de la interfața listei și similară cu matricea este ArrayList.
Q # 3) Cum convertiți o matrice într-o listă în Java?
Răspuns: Una dintre metodele de bază pentru a converti o matrice într-o listă în Java este utilizarea metodei asList () a clasei Arrays.
List aList = Arrays.asList (myarray);
În afară de aceasta, există mai multe metode care convertesc o matrice într-o listă, așa cum am discutat mai devreme în acest tutorial.
Q # 4) Care este un set sau o listă mai rapidă în Java?
Răspuns: Depinde de datele stocate. Dacă datele sunt unice, atunci lista este mai bună și mai rapidă. Dacă aveți un set mare de date, alegeți seturi. Structura setului necesită de obicei 10 ori mai multă memorie decât listele.
Q # 5) Care este diferența dintre un ArrayList și un Set?
Răspuns: Lista este o colecție de elemente ordonate, în timp ce setul este o colecție de elemente neordonate. Lista poate avea elemente duplicate, dar setul nu poate avea elemente duplicate.
Concluzie
În acest tutorial, am văzut diferite conversii de listă la matrice, set și viceversa. De asemenea, am văzut diferențele majore dintre o matrice și o listă.
În acest tutorial următor, vom discuta în detaliu clasele de listă precum ArrayList, LinkedList etc.
=> Consultați aici Ghidul perfect de instruire Java.
Lectură recomandată
- Java Copy Array: Cum să copiați / clonați un array în Java
- Java Array - Cum se imprimă elemente ale unui array în Java?
- Lista Java - Cum să creați, inițializați și utilizați lista în Java
- Tipuri de date matrice - matrice int, matrice dublă, matrice de șiruri etc.
- Java Array - Declarați, creați și inițializați o matrice în Java
- Cum să treceți / returnați o matrice în Java
- Tutorial JAVA pentru începători: peste 100 de tutoriale video Java practice
- Tutorial Java Array Length cu exemple de cod