na Jawie, Szyk I Lista to dwie najważniejsze struktury danych. W tej części się dowiemy jak przekonwertować tablicę Java na listę. My również stworzyliśmy Programy Java które konwertują tablicę na listę przy użyciu różnych metod Java.
Konwersja tablicy na listę w Javie
Tablica Java jest zbiorem wielu wartości tego samego typu danych. Tablica może zawierać obiekty i typy pierwotne. To zależy od definicji tablicy. Jeśli definicja tablicy jest typu pierwotnego, wartości tablicy są przechowywane w zakaźnej lokalizacji pamięci. Jeśli tablica zawiera elementy obiektów, elementy przechowywane są w segmencie sterty.
W Jawa , A Lista to interfejs należący do frameworka Java Collections. Przechowuje elementy w postaci obiektów w uporządkowany sposób i zachowuje kolejność wstawiania. Pozwala nam przechowywać zduplikowane wartości. Klasy Lista tablic , Połączona lista , Wektor I Stos implementuje interfejs List.
znak na ciąg Java
Java udostępnia pięć metod konwersji tablicy na listę:
- Metoda natywna
- Korzystanie z metody Arrays.asList().
- Korzystanie z metody Collections.addAll().
- Korzystanie z interfejsu API strumienia Java 8
- Korzystanie z metody Guava Lists.newArrayList().
Metoda natywna
Jest to najprostsza metoda konwersji tablicy Java na listę. W tej metodzie najpierw tworzymy pustą listę i dodajemy do niej wszystkie elementy tablicy. Zobaczmy przykład.
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; } }
Wyjście:
Korzystanie z metody Arrays.asList().
Jest to metoda klasy Java Arrays należącej do pakietu java.util. Kiedy używamy metody asList() z metodą Collection.toArray(), działa ona jako pomost pomiędzy interfejsami API opartymi na tablicach i kolekcjach.
Składnia:
public static List asList(T... a)
Metoda analizuje tablicę jako parametr, według którego lista będzie bazowana. Zwraca możliwy do serializacji widok listy o stałym rozmiarze określonej tablicy. Zobaczmy przykład.
ArrayToListExample2.java
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; } }
Wyjście:
Korzystanie z metody Collections.addAll().
Jest to metoda tzw Kolekcje Javy klasa. należy do pakietu java.util. Klasa udostępnia metodę o nazwie dodać wszystko() . Możemy użyć tej metody do konwersji tablicy na listę. Dodaje wszystkie elementy do określonej kolekcji. Elementy możemy określać pojedynczo lub w formie tablicy. Działa tak samo jak c.addAll(Arrays.asList(elementy)). Jest to szybsze wdrożenie niż kolejne wdrożenie.
Składnia:
public static boolean addAll(Collection c, T... elements)
Analizuje dwa parametry:
To powraca PRAWDA jeśli kolekcja uległa zmianie w wyniku wywołania. Zgłasza następujące wyjątki:
k algorytm najbliższego sąsiada
- Jeśli parametr c nie obsługuje operacji dodawania, zostanie zgłoszony Nieobsługiwany wyjątek operacji .
- Jeśli określone elementy tablicy zawierają jedną lub więcej wartości null, a c nie zezwala na elementy null, zgłasza Wyjątek NullPointer .
- Jeśli jakikolwiek element tablicy uniemożliwia dodanie go do parametru c, zgłasza Wyjątek IllegalPointerException .
Zobaczmy przykład.
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; } }
Wyjście:
Korzystanie z interfejsu API strumienia Java 8
Java 8 udostępnia interfejs API strumienia do przetwarzania kolekcji obiektów. Jest to sekwencja metod, które można potokować w celu uzyskania pożądanego rezultatu. Pamiętaj, że nie zmienia to oryginalnej struktury danych. Zapewnia dane wyjściowe w oparciu o metody potokowe. Strumień możemy osiągnąć na wiele sposobów, ale w poniższym programie użyliśmy Arrays.stream(Obiekt[]) aby dotrzeć do strumienia.
Metoda Collectors.toList(): Metoda zwraca Collector, który zbiera elementy wejściowe do nowo utworzonej Listy w metodzie spotkania.
Składnia:
public static Collector<t,?,list> toList() </t,?,list>
Gdzie T jest typem elementu, który określiliśmy. Metoda nie zapewnia gwarancji typu, zmienności, bezpieczeństwa wątków i możliwości serializacji.
Użyjmy interfejsu Stream API w programie Java i przekonwertujmy tablicę na 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); } }
Wyjście:
Korzystanie z Guava Lists.newArrayList()
Jest to metoda tzw Listy klasa, do której należą com.google.common.collect pakiet. Klasa udostępnia metodę nowaListaArray() który tworzy zmienną, pustą instancję ArrayList zawierającą elementy określonej tablicy.
Składnia:
public static ArrayList newArrayList(E... elements)
Uwaga: Metoda newArrayList() jest dostępna dla wersji Java 6 i wcześniejszych. W późniejszych wersjach jest to przestarzałe. Zamiast powyższej metody używamy bezpośrednio konstruktora ArrayList.
ArrayToListExample5.java
Zainicjuj listę Pythona
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); } }
Wyjście: