În Java, Matrice și Listă sunt cele mai importante două structuri de date. În această secțiune, vom învăța cum se transformă Java Array într-o listă. Am creat și noi programe Java care convertesc Array într-o Listă prin utilizarea diferitelor metode Java.
Convertirea matricei în listă în Java
matrice Java este o colecție de valori multiple ale aceluiași tip de date. O matrice poate conține obiecte și tipuri primitive. Depinde de definiția matricei. Dacă o definiție de matrice este de tip primitiv, valorile matricei sunt stocate în locația de memorie contagioasă. Dacă o matrice conține elemente obiecte, elemente stocate în segmentul heap.
În Java , A Listă este o interfață care aparține cadrului Java Collections. Stochează elementele sub formă de obiecte într-o manieră ordonată și păstrează ordinea de inserare. Ne permite să stocăm valori duplicate. Clasele ArrayList , LinkedList , Vector și Grămadă implementează interfața Listă.
Java oferă cinci metode pentru a converti Array într-o Listă, după cum urmează:
- Metoda nativă
- Folosind metoda Arrays.asList().
- Folosind metoda Collections.addAll().
- Folosind Java 8 Stream API
- Folosind metoda Guava Lists.newArrayList().
Metoda nativă
Este cea mai simplă metodă de a converti Java Array într-o Listă. În această metodă, mai întâi, creăm o Listă goală și adăugăm toate elementele matricei în Listă. Să vedem un exemplu.
ArrayToListExample1.java
import java.util.*; public class ArrayToListExample1 { public static void main(String args[]) { //creating an array String array[] = { 'Golf', 'Soccer', 'Baseball', 'Volleyball', 'Tennis', 'Badminton', 'Rugby', 'Archery', 'Skiing'}; //prints the array before conversion System.out.println('Array before conversion: '+ Arrays.toString(array)); //calling the generic function that converts Array into List List list = ArrayToListConversion(array); //print the List System.out.println('Array as List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T array[]) { //creating the constructor of the List class List list = new ArrayList(); //using for-each loop to iterate over the array for (T t : array) { //adding each element to the List list.add(t); } //returns the list converted into Array return list; } }
Ieșire:
Folosind metoda Arrays.asList().
Este metoda clasei Java Arrays care aparține pachetului java.util. Când folosim metoda asList() cu metoda Collection.toArray(), aceasta funcționează ca o punte între API-urile bazate pe matrice și cele bazate pe colecții.
descărcare sts
Sintaxă:
public static List asList(T... a)
Metoda parsează o matrice ca un parametru prin care lista va fi susținută. Returnează o listă serializată de dimensiune fixă a matricei specificate. Să vedem un exemplu.
ArrayToListExample2.java
diferența dintre dragoste și placere
import java.util.*; public class ArrayToListExample2 { public static void main(String args[]) { //creating an array to be converted String arr[] = { 'Aston Martin', 'Bugatti', 'Bentley', 'Alfa Romeo', 'Buick', 'Acura', 'Audi', 'BMW', 'Buick' }; //prints array before conversion System.out.println('Array before conversion: '+ Arrays.toString(arr)); //calling generic method that converts Array into List List list = ArrayToListConversion(arr); //prints the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //invoking the asList() method and passing the array to be converted List list = Arrays.asList(arr); //returns the list return list; } }
Ieșire:
Folosind metoda Collections.addAll().
Este metoda de Colecții Java clasă. aparține pachetului java.util. Clasa oferă o metodă numită adaugă totul() . Putem folosi metoda pentru a converti Array într-o Listă. Adaugă toate elementele la colecția specificată. Putem specifica elemente fie individual, fie sub forma unui tablou. Funcționează la fel ca c.addAll(Matrice.asList(elemente)). Este o implementare mai rapidă decât o altă implementare.
Sintaxă:
public static boolean addAll(Collection c, T... elements)
Analizează doi parametri:
Se întoarce Adevărat dacă colectarea s-a schimbat în urma apelului. Aruncă următoarele excepții:
- Dacă parametrul c nu acceptă operația de adăugare, se aruncă UnsupportedOperationException .
- Dacă elementele de matrice specificate conțin una sau mai multe valori nule și c nu permite elemente nule, se aruncă NullPointerException .
- Dacă orice element de matrice îl împiedică să fie adăugat la parametrul c, îl aruncă IllegalPointerException .
Să vedem un exemplu.
ArrayToListExample3.java
import java.util.*; public class ArrayToListExample3 { public static void main(String args[]) { //creating an Array to be converted String arr[] = { 'San Jose', 'Dallas', 'Chicago','San Antonio', 'Los Angeles', 'Portland', 'Tucson' }; //prints the Array System.out.println('Array before conversion: '+ Arrays.toString(arr)); //method calling List list = ArrayToListConversion(arr); //print the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creating the constructor of thr List class List list = new ArrayList(); //the method adds Array to the List Collections.addAll(list, arr); //returns the list return list; } }
Ieșire:
Folosind Java 8 Stream API
Java 8 oferă API-ul Stream pentru a procesa colecţiile de obiecte. Este o succesiune de metode care pot fi canalizate pentru a produce rezultatul dorit. Rețineți că nu modifică structura originală a datelor. Oferă rezultatul bazat pe metodele pipeline. Putem obține Stream în mai multe moduri, dar în programul următor am folosit Arrays.stream(Obiect[]) pentru a atinge pârâul.
Metoda Collectors.toList(): Metoda returnează un colector care colectează elementele de intrare într-o listă nou creată într-o metodă de întâlnire.
Sintaxă:
public static Collector<t,?,list> toList() </t,?,list>
Unde T este tipul de element pe care l-am specificat. Metoda nu oferă garanții privind tipul, mutabilitatea, siguranța firelor și serializabilitatea.
Să folosim API-ul Stream într-un program Java și să convertim o matrice într-o listă.
ArrayToListExample4.java
import java.util.*; import java.util.stream.Collectors; public class ArrayToListExample4 { //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a list from the specified Array and returns the List return Arrays.stream(arr).collect(Collectors.toList()); } public static void main(String args[]) { //creating an array to be converted into List String arr[] = { 'Python', 'HTM', 'Java', 'C', 'C++', 'JavaScript', 'Ruby', 'Swift', 'PHP' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //calling the method created above and storing the elements into the List object List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } }
Ieșire:
Utilizarea Guava Lists.newArrayList()
Este metoda de Liste clasa căreia îi aparțin com.google.common.collect pachet. Clasa oferă o metodă newArrayList() care creează instanță ArrayList goală mutabilă având elementele matricei specificate.
Sintaxă:
public static ArrayList newArrayList(E... elements)
Notă: Metoda newArrayList() este disponibilă pentru Java 6 și versiunile anterioare. În versiunile ulterioare este depreciat. În loc de metoda de mai sus, folosim direct constructorul ArrayList.
ArrayToListExample5.java
linkedlist java
import static com.google.common.collect.Lists.*; import java.util.*; public class ArrayToListExample5 { public static void main(String args[]) { //creating an Array to be converted into a List String arr[] = { 'Mango', 'Banana', 'Grapes', 'Apple', 'Plum', 'Blackberry', 'Papaya', 'Orange' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //convert the Array to List List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a List from the specified Array return Lists.newArrayList(arr); } }
Ieșire: