covert list array
Цей підручник пояснює, як перетворити список Java на масив та інші колекції. Він включає приклади для перетворення списку в масив, рядок, набір і навпаки:
У наших попередніх підручниках ми обговорювали деталі колекції списків. Ми бачили різні операції зі списком, ітератори тощо. Враховуючи список, ми можемо перетворити цей список у будь-які інші колекції або структури даних, такі як рядки, масиви, ArrayList, набір тощо.
=> Завітайте сюди, щоб ознайомитись із ексклюзивною серією навчальних посібників Java.
Що ви дізнаєтесь:
Перетворення списків
Тут насправді ми переносимо елементи з однієї колекції / структури в іншу, і, фактично, ми фактично змінюємо макет елементів, оскільки кожна колекція або структура даних має свій власний макет.
У цьому підручнику ми обговоримо кілька перетворень зі списку в інші структури даних і навпаки.
Перетворити список на рядок
Ви можете легко перетворити список елементів у його рядкове представлення. Здебільшого вам захочеться перетворити список рядків або символів у рядкове представлення.
Існують різні методи перетворення списку в рядок. Найпопулярніші з них розглянуті нижче.
# 1) Використання методу toString
Це найпростіший спосіб перетворення списку в рядок. У цьому методі ви просто використовуєте метод 'toString' у списку, який перетворює список у рядкове представлення.
У наведеній нижче програмі показано реалізацію методу 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); } }
Вихід:
У цій програмі ви можете бачити, що після перетворення списку символів у рядкове представлення рядок додатково вдосконалюється, видаляючи з нього символи, що обмежують, і представляючи це як одне слово.
# 2) Використання колекційного класу
Починаючи з Java 8, ви можете використовувати потокові API з класом ‘Collectors’, щоб перетворити список у рядок.
Приклад:
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); } }
Вихід:
У наведеній вище програмі ми використовуємо потокові API, зіставляємо значення, а потім використовуємо метод joining () класу Collectors і перетворюємо список у рядок.
# 3) Використання класу StringBuilder
Третім методом перетворення списку в рядок є використання об’єкта StringBuilder. Тут кожен елемент у списку додається до об’єкта StringBuilder за допомогою циклу. Потім об’єкт StringBuilder перетворюється у своє рядкове представлення за допомогою методу toString.
Перевірте наступну програму для демонстрації.
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); } }
Вихід:
Наведена вище програма показує використання об’єкта StringBuilder, до якого додаються елементи у списку. Потім об’єкт перетворюється на рядок.
Перетворення списку в масив
Враховуючи список елементів, вам потрібно перетворити цей список на масив. Для цього можна скористатися будь-яким із описаних нижче способів.
# 1) Використання toArray
Найпростіший спосіб перетворити список на масив - використовувати метод списку ‘toArray’.
Наступна програма показує цю реалізацію методу 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 + ' '); } }
Вихід:
У наведеній вище програмі ми перетворили список рядків у масив рядків за допомогою методу ‘toArray’.
# 2) Використання Java 8 Stream
Запити sql беруть інтерв’ю на запитання та відповіді за 3-річний досвід
Наступним методом перетворення списку в масив є використання потокових API Java 8. У цьому списку спочатку перетворюється на stream, а потім за допомогою stream (). ToArray він перетворюється на масив.
Наступна програма Java показує це перетворення.
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 + ' '); } }
Вихід:
Вищевказана програма використовує потокові API Java 8 і перетворює список на масив. Потім масив друкується з використанням для кожного циклу.
# 3) Використання методу get
Це ще один метод перетворення списку в масив. Для цього ми використовуємо get () списку, який можна використовувати для отримання окремих елементів списку.
Програма для перетворення списку в масив за допомогою методу 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 Вихід:

У наведеній вище програмі ми створили масив того самого розміру, що і список. Потім у циклі елементи списку отримуються за допомогою методу get () і присвоюються масиву.
Перетворити масив у список
Оскільки ви можете перетворити список на масив, ви також можете перетворити масив на список на Java. Нижче наведено деякі методи, за допомогою яких ви можете перетворити масив у список.
# 1) Використання простого коду Java
Це традиційний метод перетворення масиву в список. Тут ви додаєте кожен елемент масиву до списку по одному за допомогою циклу. Для цього використовується метод додавання списку.
Наступна програма реалізує традиційний метод перетворення масиву в список.
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); } }
Вихід:

# 2) Використання методу asList ()
Наступним методом перетворення масиву в список є використання методу asList () класу Arrays. Тут ви можете передати Array як аргумент методу asList (), і він повертає отриманий список.
Наступна програма це показує.
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); } }
Вихід:

У наведеній вище програмі ми маємо масив непарних чисел. Потім ми створюємо список цілих чисел і призначаємо його виводу методу asList, який є списком.
# 3) Використання методу Collection.addAll ()
Ви також можете використовувати метод addAll () класу Collections, оскільки масив і список є обома частинами фреймворку колекції в Java.
Наступна програма показує використання методу Collections.addAll () для перетворення масиву в список.
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); } }
Вихід:

Тут ми ініціалізували масив. Ми створили порожній список. Тоді метод Collections.addAll () використовується, передаючи списки та масив як аргумент. Успішне виконання цього методу матиме список, заповнений елементами масиву.
# 4) Використання Java 8 Streams
Наступним підходом для перетворення масиву в список є використання Java 8 Stream API та класу Collectors. Тут масив спочатку перетворюється на потік, а потім елементи збираються у список за допомогою потоку. Метод збору. Список повертається остаточно.
Наступна програма показує реалізацію, яка перетворює масив у список за допомогою 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); } }
Вихід:

У наведеній вище програмі створюється масив кольорів. Далі створюється порожній список, а потім список, отриманий з масиву за допомогою потокового API, присвоюється списку.
Перетворити список на встановлений
Набір - це невпорядкована колекція елементів, яка не допускає повторюваних значень. Набір є частиною фреймворку Java Collections. Ви можете перетворити список на набір і навпаки, якщо це необхідно.
У цьому розділі розглянемо деякі методи, які використовуються для перетворення списку в набір.
# 1) Використання традиційного методу
Ви можете перетворити список на встановлення, використовуючи традиційний код Java. У цьому ви можете створити HashSet або treeSet. А потім, використовуючи метод add, додайте кожен елемент списку до набору в циклі.
Це здійснення показано нижче.
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 + ' '); } }
Вихід:

У наведеній вище програмі ви бачите, що ми створили об'єкт HashSet типу string. Потім за допомогою розширеного циклу for кожен елемент списку додається до набору. Нарешті, набір надруковано.
Рекомендована література = >> HashSet на Java
# 2) Використання HashSet або конструктора наборів дерев
Наступний метод - використання конструктора множин. Тут ми створюємо конструктор наборів (treeSet або HashSet). Цей конструктор передається як аргумент. За допомогою цього списку будується набір.
Перевірте програму нижче для цього впровадження.
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 + ' '); } }
Вихід:

У наведеній вище програмі ми створюємо як HashSet, так і treeSet, передаючи список як аргумент. Нарешті, відображається вміст як HashSet, так і набору дерев.
# 3) Використання методу addAll
Це те саме, що метод addAll колекцій, який ми бачили раніше. Тут метод addAll використовується для копіювання вмісту списку до набору.
Наступна програма показує використання методу 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 + ' '); } }
Вихід:

Ця програма створює об'єкт HashSet. Тоді метод addAll викликається в об'єкті HashSet із списком як параметром. Цей метод копіює вміст списку до набору.
# 4) Використання Java 8 Streams
Як уже було показано, ви також можете використовувати потоки Java 8 для перетворення списку в будь-яку іншу колекцію, включаючи набір. Для цього потрібно використовувати метод stream (). Collect.
Наступна програма показує це впровадження.
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 + ' '); }
Вихід:

Вищевказана програма подібна до тієї, що показана у випадку перетворення зі списку в масив. Спочатку список перетворюється на потік, а потім метод collect збирає елементи потоку і перетворює на set.
Тепер, коли ми побачили різні методи, які виконують перетворення зі списку в набір, давайте побачимо методи, які використовуються для перетворення набору в список.
Перетворити набір у список
Подібно до того, як ви перетворюєте список на набір, ви також можете перетворити набір у список. Ви можете використовувати ті ж методи, описані вище для цього перетворення. Єдина відмінність полягає в тому, що ви змінюєте місця списку і встановлюєте в програмі.
Нижче наведено приклади перетворення з набору в список для кожного методу.
# 1) Використання звичайної Java
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); } }
Вихід:

Вищевказана програма оголошує та ініціалізує набір. Потім він створює список і додає кожен елемент набору до списку. Нарешті, друкується список.
# 2) Використання конструкторів
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); } }
Вихід:

Тут ви можете використовувати конструктор списку з об'єктом набору в якості аргументу. Це копіює всі елементи набору в об’єкт списку.
# 3) Використання методу 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); } }
Вихід:

У цій програмі створюється об’єкт списку. Потім за допомогою методу Collections.addAll () елементи набору додаються до списку.
# 4) Використання 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); } }
Вихід:

Ви також можете використовувати потоки Java 8 і метод збирання, щоб перетворити набір у список, як показано у наведеній вище програмі.
Масив проти списку
Давайте обговоримо деякі відмінності між масивом та списком.
Масив Список Масив є базовою структурою даних в Java. Список являє собою інтерфейс, який є частиною фреймворку колекції в Java, з якого можна розширити багато класів, таких як LinkedList, ArrayList тощо Має фіксований розмір Розмір списку динамічний. Елементи масиву можна отримати за допомогою (). Доступ до членів списку здійснюється за допомогою методів. Масив може мати як примітивні типи, так і об'єкти як його елементи. Списки можуть містити лише об’єкти. Масиви можуть використовувати оператори з його елементами. Списки не можуть використовувати оператори. Натомість у ньому перелічені методи використання. Масиви не можуть працювати із загальними засобами для забезпечення безпеки типу. Списки можуть бути загальними.
Часті запитання
Q # 1) Як перетворити список на масив на Java?
Відповідь: Основним методом перетворення списку в масив на Java є використання методу ‘toArray ()’ інтерфейсу List.
Простий виклик нижче перетворює список на масив.
Object() array = list.toArray();
Існують також інші методи, як обговорювалося вище, для перетворення списку в масив.
Q # 2) Чи є масив списком у Java?
Відповідь: Ні. Масив - це основна структура в Java з фіксованою довжиною. Він не поширюється на інтерфейс списку. Структура, яка поширюється від інтерфейсу списку та подібна до масиву, це ArrayList.
Q # 3) Як перетворити масив у список на Java?
Відповідь: Одним з основних методів перетворення масиву в список на Java є використання методу asList () класу Arrays.
List aList = Arrays.asList (myarray);
Окрім цього, існує більше методів, які перетворюють масив у список, як обговорювалося раніше в цьому посібнику.
Q # 4) Що є швидшим набором чи списком у Java?
Відповідь: Це залежить від даних, що зберігаються. Якщо дані унікальні, то список кращий і швидший. Якщо у вас великий набір даних, перейдіть за наборами. Задана структура зазвичай вимагає в 10 разів більше пам'яті, ніж списки.
Q # 5) Яка різниця між ArrayList та Set?
Відповідь: Список - це колекція впорядкованих елементів, тоді як набір - це колекція невпорядкованих елементів. Список може мати повторювані елементи, але набір не може мати повторюваних елементів.
Висновок
У цьому посібнику ми бачили різні перетворення списків у масив, набір і навпаки. Ми також бачили основні відмінності між масивом та списком.
У цьому наступному підручнику ми детально обговоримо такі класи списку, як ArrayList, LinkedList тощо.
=> Ознайомтесь з Ідеальним посібником з навчання Java тут.
Рекомендована література
- Копіювальний масив Java: Як скопіювати / клонувати масив у Java
- Java Array - Як надрукувати елементи масиву в Java?
- Список Java - Як створити, ініціалізувати та використовувати список у Java
- Типи даних масиву - масив int, подвійний масив, масив рядків тощо
- Java Array - Оголошення, створення та ініціалізація масиву в Java
- Як передати / повернути масив на Java
- Підручник JAVA для початківців: 100+ практичних відео-підручників Java
- Підручник з довжини масиву Java із прикладами коду