В Java, Масив и списък са двете най-важни структури от данни. В този раздел ще научим как да конвертирате Java Array в списък. Ние също сме създали Java програми които преобразуват масив в списък чрез използване на различни Java методи.
Преобразуване на масив в списък в Java
Java масив е колекция от множество стойности от един и същи тип данни. Масивът може да съдържа обекти и примитивни типове. Зависи от дефиницията на масива. Ако дефиницията на масив е от примитивен тип, стойностите на масива се съхраняват в местоположението на заразната памет. Ако масивът съдържа елементи на обекти, елементите се съхраняват в сегмента на купчината.
в Java , а списък е интерфейс, който принадлежи към рамката на Java Collections. Той съхранява елементи под формата на обекти по подреден начин и запазва реда на вмъкване. Позволява ни да съхраняваме дублирани стойности. Класовете ArrayList , LinkedList , вектор и Стек реализира интерфейса List.
Java предоставя пет метода за конвертиране на масив в списък, както следва:
- Роден метод
- Използване на метода Arrays.asList().
- Използване на метода Collections.addAll().
- Използване на Java 8 Stream API
- Използване на метода Guava Lists.newArrayList().
Роден метод
Това е най-простият метод за конвертиране на Java Array в списък. В този метод първо създаваме празен списък и добавяме всички елементи от масива в списъка. Да видим един пример.
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; } }
Изход:
обвиване на css текст
Използване на метода Arrays.asList().
Това е методът на класа Java Arrays, който принадлежи към пакета java.util. Когато използваме метода asList() с метода Collection.toArray(), той работи като мост между базирани на масив и базирани на колекции API.
Синтаксис:
public static List asList(T... a)
Методът анализира масив като параметър, чрез който списъкът ще бъде подкрепен. Той връща изглед на списък с фиксиран размер с възможност за сериализиране на посочения масив. Да видим един пример.
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; } }
Изход:
Използване на метода Collections.addAll().
Това е методът на Java колекции клас. той принадлежи към пакета java.util. Класът предоставя метод с име добави Всички() . Можем да използваме метода за преобразуване на масив в списък. Той добавя всички елементи към определената колекция. Можем да посочим елементи поотделно или под формата на масив. Работи по същия начин като c.addAll(Arrays.asList(elements)). Това е по-бързо изпълнение от друго изпълнение.
Синтаксис:
алфа бета пример за подрязване
public static boolean addAll(Collection c, T... elements)
Той анализира два параметъра:
Връща се вярно ако колекцията се промени в резултат на повикването. Той хвърля следните изключения:
- Ако параметърът c не поддържа операцията за добавяне, той хвърля UnsupportedOperationException .
- Ако посочените елементи на масива съдържат една или повече нулеви стойности и c не позволява нулеви елементи, той хвърля NullPointerException .
- Ако някой елемент от масива възпрепятства добавянето му към параметъра c, той хвърля IllegalPointerException .
Да видим един пример.
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; } }
Изход:
c произволно число
Използване на Java 8 Stream API
Java 8 предоставя Stream API за обработка на колекциите от обекти. Това е поредица от методи, които могат да бъдат обработени, за да се получи желаният резултат. Не забравяйте, че това не променя оригиналната структура на данните. Той осигурява изхода въз основа на конвейерните методи. Можем да постигнем Stream по няколко начина, но в следната програма, която използвахме Arrays.stream(Обект[]) за постигане на потока.
Метод Collectors.toList(): Методът връща колектор, който събира входните елементи в новосъздадения списък в метод за среща.
Синтаксис:
public static Collector<t,?,list> toList() </t,?,list>
Където T е типът елемент, който сме посочили. Методът не предоставя гаранции за типа, променливостта, безопасността на нишките и възможността за сериализиране.
какво е пролог
Нека използваме Stream API в програма на Java и да конвертираме масив в списък.
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); } }
Изход:
Използване на Guava Lists.newArrayList()
Това е методът на Списъци клас, към който принадлежат com.google.common.collect пакет. Класът предоставя метод newArrayList() който създава променлив празен екземпляр на ArrayList с елементите на посочения масив.
Синтаксис:
public static ArrayList newArrayList(E... elements)
Забележка: Методът newArrayList() е наличен за Java 6 и по-стари версии. В по-късните версии е отхвърлен. Вместо горния метод, ние използваме директно конструктор ArrayList.
ArrayToListExample5.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); } }
Изход: