java list how create
Цей підручник зі списку Java пояснює, як створювати, ініціалізувати та друкувати списки на Java. Підручник також пояснює список списків із повним прикладом коду:
Цей посібник познайомить вас зі 'списком' структури даних, який є однією з основних структур в інтерфейсі Java Collection.
Список на Java - це послідовність елементів відповідно до порядку. Інтерфейс List пакета java.util - це той, який реалізує цю послідовність об'єктів, упорядкованих певним чином, що називається List.
=> Перевірте ВСІ підручники Java тут.
Подібно до масивів, до елементів списку також можна отримати доступ за допомогою індексів, перший індекс починається з 0. Індекс вказує конкретний елемент в індексі ‘i’, тобто це i елементи, які віддалені від початку списку.
Деякі характеристики списку на Java включають:
- Списки можуть мати повторювані елементи.
- Список також може мати елементи 'нуль'.
- Списки підтримують дженерики, тобто ви можете мати загальні списки.
- Ви також можете мати змішані об'єкти (об'єкти різних класів) в одному списку.
- Списки завжди зберігають порядок вставки та дозволяють позиційний доступ.
Що ви дізнаєтесь:
- Список на Java
- Висновок
Список на Java
Інтерфейс Java List є підтипом інтерфейсу Java Collection. Це стандартний інтерфейс, який успадковує інтерфейс Collection Java.
Нижче наведено схему класів інтерфейсу Java List.

Як показано на наведеній вище схемі класів, інтерфейс списку Java поширюється від інтерфейсу Collection пакета java.util, який, у свою чергу, поширюється від інтерфейсу Iterable пакета java.util. Клас AbstractList забезпечує скелетну реалізацію інтерфейсу List.
Класи LinkedList, Stack, Vector, ArrayList та CopyOnWriteArrayList - це всі класи реалізації інтерфейсу List, які часто використовуються програмістами. Таким чином, у Java є чотири типи списків, тобто Stack, LinkedList, ArrayList та Vector.
Отже, коли вам потрібно реалізувати інтерфейс списку, ви можете реалізувати будь-який із наведених вище класів типу списку залежно від вимог. Щоб включити функціональність інтерфейсу списку у свою програму, вам доведеться імпортуйте пакет java.util. *, який містить інтерфейс списку та інші класи визначень наступним чином:
import java.util.*;
Створити та оголосити список
Ми вже заявляли, що List - це інтерфейс і реалізується такими класами, як ArrayList, Stack, Vector та LinkedList. Отже ви можете оголошувати та створювати екземпляри списку будь-яким із наступних способів:
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
Як показано вище, ви можете створити список з будь-яким із наведених класів, а потім ініціалізувати ці списки значеннями. З наведених вище тверджень ви можете зрозуміти, що порядок елементів буде змінюватися залежно від класу, що використовується для створення екземпляра списку.
Наприклад, для списку з класом стека порядок - Last In, First Out (LIFO).
Ініціалізуйте список Java
Ви можете використовувати будь-який із наведених нижче методів для ініціалізації об’єкта списку.
# 1) Використання методу asList
Метод asList () вже детально висвітлений у темі 'Масиви'. Ви можете створити незмінний список, використовуючи значення масиву.
Загальний синтаксис:
List listname = Arrays.asList(array_name);
Тут тип даних_ повинен збігатися з типом масиву.
Наведене вище твердження створює незмінний список. Якщо ви хочете, щоб список можна було змінювати, вам доведеться створити екземпляр списку, використовуючи new, а потім призначити йому елементи масиву за допомогою методу asList.
Це показано нижче:
List listname = new ArrayList (Arrays.asList(array_name));
Давайте реалізувати програму на Java, яка показує створення та ініціалізацію списку методом asList .
Як порівняти файли в Linux
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
Вихід:
У наведеній вище програмі ми створили незмінний список спочатку за допомогою методу asList. Потім ми створюємо змінний список, створюючи екземпляр ArrayList, а потім ініціалізуючи цей ArrayList значеннями з масиву, використовуючи метод asList.
Зауважте, що, оскільки другий список можна змінювати, ми також можемо додати до нього більше значень.
# 2) Використання List.add ()
Як уже зазначалося, оскільки список є лише інтерфейсом, його неможливо створити. Але ми можемо створити екземпляр класів, які реалізують цей інтерфейс. Тому для ініціалізації класів списку ви можете використовувати відповідні їм методи додавання, який є методом інтерфейсу списку, але реалізований кожним з класів.
Якщо ти створити екземпляр класу пов'язаного списку, як показано нижче:
List llist = new LinkedList ();
Потім, щоб додати елемент до списку, ви можете використовувати метод add наступним чином:
llist.add(3);
Існує також техніка, що називається “Подвійна фігурна дужка”, коли список створюється за допомогою екземпляра та ініціалізується шляхом виклику методу add у тому ж операторі.
Це робиться, як показано нижче:
List llist = new LinkedList (){{ add(1); add(3);}};
Вищезазначене додає елементи 1 і 3 до списку.
Наступна програма показує ініціалізація списку за допомогою методу add . Він також використовує техніку подвійної фігурної дужки.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
Вихід:
Ця програма має три різні оголошення списку, тобто ArrayList, LinkedList та Stack.
Об'єкти ArrayList та LinkedList створюються за допомогою екземпляра, а потім викликаються методи add для додавання елементів до цих об'єктів. Для стека використовується ініціалізація подвійних фігурних дужок, в якій метод add викликається під час самого створення екземпляра.
# 3) Використання методів колекційного класу
Клас колекцій Java має різні методи, за допомогою яких можна ініціалізувати список.
Деякі з методів:
- addAll
загальний синтаксис для колекцій метод addAll:
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
Тут ви додаєте значення до порожнього списку. Метод addAll приймає список як перший параметр, а потім значення, які потрібно вставити в список.
- unmodifiableList ()
Метод ‘unmodifiableList ()’ повертає незмінний список, до якого елементи не можна додавати чи видаляти.
Загальний синтаксис цього методу такий:
List listname = Collections.unmodifiableList(Arrays.asList(values…));
Метод приймає значення списку як параметри і повертає список. Якщо ви взагалі намагаєтесь додати або видалити будь-який елемент із цього списку, то компілятор видає виняток UnsupportedOperationException.
- singletonList ()
Метод ‘singletonList’ повертає список із одним елементом. Список незмінний.
Загальний синтаксис цього методу:
List listname = Collections.singletonList(value);
Наступна програма Java демонструє всі три методи класу Collections обговорювалося вище.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
Вихід:
# 4) Використання Java8 Streams
З введенням потоків в Java 8 ви також можете побудувати потік даних і збирати їх у списку.
Наступні програма показує створення списку за допомогою потоку.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
Вихід:
як користуватися файлом
Вищевказана програма збирає потік рядків у список і повертає його. Ви також можете використовувати інші методи збирача, такі як ‘toCollection’, ‘unmodifiableList’ тощо, крім asList у функції збору.
# 5) Java 9 List.of () Метод
У Java 9, List.of (), представлений новий метод, який приймає будь-яку кількість елементів і створює список. Створений список є незмінним.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
Вихід:
Приклад списку
Нижче наведено повний приклад використання інтерфейсу списку та різних його методів.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
Вихід:
Наведений вище результат програми показує різні операції, що виконуються над ArrayList. Спочатку він створює та ініціалізує список. Потім він копіює вміст іншого списку до цього списку, а також видаляє елемент зі списку. Нарешті, він замінює останній елемент у списку іншим значенням.
Ми детально вивчимо методи переліку в нашому наступному уроці.
Список друку
Існують різні методи, за допомогою яких можна друкувати елементи списку на Java.
Давайте обговоримо тут деякі методи.
# 1) Використання For Loop / Enhanced For Loop
Список є упорядкованою колекцією, до якої можна отримати доступ за допомогою індексів. Ви можете використовувати цикл for, який використовується для ітерації за допомогою індексів для друку кожного елемента списку.
У Java є ще одна версія циклу for, відома як розширена для циклу, яка також може використовуватися для доступу та друку кожного елемента списку.
Програма Java, показана нижче, демонструє друк вмісту списку за допомогою циклу for та розширеного for loop.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i Вихід:

# 2) Використання методу toString
Метод ‘toString ()’ інтерфейсу списку повертає рядкове представлення списку.
Програма нижче демонструє використання методу toString ().
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
Вихід:

Список, перетворений у масив
У списку є метод toArray (), який перетворює список на масив. Після перетворення в масив ви можете використовувати методи масиву, обговорені у відповідній темі, для друку вмісту цього масиву. Ви можете використовувати для або вдосконалений цикл for або навіть метод toString.
Приклад, наведений нижче використовує метод toString для друку вмісту масиву.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
Вихід:

Використання Java 8 Streams
Потоки представлені в Java 8. Ви можете використовувати потоки, щоб прокручувати список. Є також лямбди, за допомогою яких ви можете переглядати список.
Програма нижче показує використання потоків для перегляду списку та відображення його вмісту.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
Вихід:

Окрім вищеописаних методів, ви можете використовувати ітератори списку для перегляду списку та відображення його вмісту. У наступних уроках ми матимемо повну статтю про ітератор списку.
Список списків
Інтерфейс списку Java підтримує 'список списків'. У цьому окремі елементи списку знову є списком. Це означає, що ви можете мати список всередині іншого списку.
Ця концепція дуже корисна, коли вам доводиться читати дані із скажімо файлів CSV. Тут вам може знадобитися прочитати декілька списків або списків усередині списків, а потім зберегти їх у пам'яті. Знову вам доведеться обробити ці дані та записати назад у файл. Таким чином, у таких ситуаціях ви можете вести список списків для спрощення обробки даних.
Наступна програма Java демонструє приклад списку списків Java.
У цій програмі ми маємо список списків типу String. Ми створюємо два окремі списки типу string і присвоюємо значення цим спискам. Обидва ці списки додаються до списку за допомогою методу add.
Для відображення вмісту списку списків ми використовуємо два цикли. Зовнішній цикл (foreach) переглядає списки списків, що отримують доступ до списків. Внутрішній цикл foreach отримує доступ до окремих рядкових елементів кожного з цих списків.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
Вихід:

Список списків Java - невелика концепція, але вона важлива, особливо коли вам доводиться читати складні дані у вашій програмі.
Часті запитання
Q # 1) Що таке список та набір у Java?
Відповідь: Список - це впорядкована колекція елементів. У списку можуть бути повторювані елементи.
Набір - це не впорядкована колекція. Елементи в наборі не розташовані в певному порядку. Також елементи в наборі повинні бути унікальними. Це не дозволяє дублікати.
Q # 2) Як працює список на Java?
Відповідь: Список є інтерфейсом на Java, який поширюється на інтерфейс Collection. Класи ArrayList, LinkedList, Stack та Vector реалізують інтерфейс списку. Таким чином, програміст може використовувати ці класи, щоб використовувати функціональність інтерфейсу списку.
Q # 3) Що таке ArrayList у Java?
Відповідь: ArrayList - це динамічний масив. Це змінна колекція елементів і реалізує інтерфейс списку. ArrayList внутрішньо використовує масив для зберігання елементів.
Q # 4) Чи починаються списки на Java з 0 або 1?
Відповідь: Списки в Java мають нульовий цілочисельний індекс. Це означає, що перший елемент у списку має індекс 0, другий елемент - індекс 1 тощо.
Q # 5) Чи упорядкований список?
Відповідь: Так. Список являє собою упорядковану колекцію елементів. Цей порядок зберігається під час вставки нового елемента в список,
Висновок
Цей підручник дав вступ до інтерфейсу списку на Java. Ми також обговорили основні концепції списків, такі як створення, ініціалізація списків, друк списків тощо.
У наших майбутніх підручниках ми обговоримо різні методи, які надає інтерфейс списку. Ми також обговоримо конструкцію ітератора, яка використовується для ітерації об'єкта списку. У наступному посібнику ми обговоримо перетворення об’єктів списку в інші структури даних.
=> Завітайте сюди, щоб побачити навчальну серію Java для всіх.
Рекомендована література
- Java Array - Оголошення, створення та ініціалізація масиву в Java
- Масив об'єктів у Java: Як створити, ініціалізувати та використовувати
- Java Hello World - Створіть свою першу програму на Java сьогодні
- Розгортання Java: Створення та виконання файлу JAR Java
- Віртуальна машина Java: як JVM допомагає у запуску програми Java
- Модифікатори доступу в Java - Підручник із прикладами
- Підручник з роздумів про Java з прикладами
- Вступ до мови програмування Java - Підручник з відео