The Java.util.List є дочірнім інтерфейсом Колекція . Це впорядкована колекція об’єктів, у якій можуть зберігатися повторювані значення. Оскільки List зберігає порядок вставки, він дозволяє позиційний доступ і вставку елементів. Інтерфейс списку реалізований ArrayList , LinkedList , Вектор і Стек класи.

List — це інтерфейс, і екземпляри List можна створити такими способами:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Нижче наведено такі способи ініціалізації списку:
-
Використання методу List.add().
Оскільки список є інтерфейсом, його неможливо створити безпосередньо. Однак можна створювати об’єкти тих класів, які реалізували цей інтерфейс, і інстанціювати їх.
Небагато класів реалізували інтерфейс List Стек, ArrayList, LinkedList, вектор тощо
Синтаксис:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
приклади:
import>java.util.*;>import>java.util.function.Supplier;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// For ArrayList>>List list =>new>ArrayList();>>list.add(>1>);>>list.add(>3>);>>System.out.println(>'ArrayList : '>+ list.toString());>>>// For LinkedList>>List llist =>new>LinkedList();>>llist.add(>2>);>>llist.add(>4>);>>System.out.println(>'LinkedList : '>+ llist.toString());>>>// For Stack>>List stack =>new>Stack();>>stack.add(>3>);>>stack.add(>1>);>>System.out.println(>'Stack : '>+ stack.toString());>>}>}>>
>
Вихід:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Ініціалізація подвійних дужок також можна використовувати для виконання вищевказаної роботи.
Синтаксис:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>приклади:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// For ArrayList>>List list =>new>ArrayList() {{>>add(>1>);>>add(>3>);>>} };>>System.out.println(>'ArrayList : '>+ list.toString());>>>// For LinkedList>>List llist =>new>LinkedList() {{>>add(>2>);>>add(>4>);>>} };>>System.out.println(>'LinkedList : '>+ llist.toString());>>>// For Stack>>List stack =>new>Stack() {{>>add(>3>);>>add(>1>);>>} };>>System.out.println(>'Stack : '>+ stack.toString());>>}>}>>
>
Вихід:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Використання Arrays.asList()
- Створення незмінного списку
Arrays.asList() створює незмінний список із масиву. Тому його можна використовувати для створення екземпляра списку з масивом.
Синтаксис:
List list=Arrays.asList(1, 2, 3);>
приклади:
import>java.util.Arrays;>import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Instantiating List using Arrays.asList()>>List list = Arrays.asList(>1>,>2>,>3>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
Вихід:List : [1, 2, 3]>
- Створення змінного списку
Синтаксис:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
приклади:
import>java.util.ArrayList;>import>java.util.Arrays;>import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a mutable list using Arrays.asList()>>List list =>new>ArrayList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>>list.add(>5>);>>>// Print the list>>System.out.println(>'Modified list : '>+ list.toString());>>}>}>конструктор python
>
>
Вихід:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Створення незмінного списку
-
Використання методів класу Collections
У класі Collections є різні методи, які можна використовувати для створення екземпляра списку. Вони є:
-
Використання Collections.addAll()
Колекції клас має статичний метод addAll() який можна використовувати для ініціалізації списку. Collections.addAll() приймати будь-яку кількість елементів після того, як це вказано в колекції, до якої елементи мають бути вставлені.
Синтаксис:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
приклади:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Create an empty list>>List list =>new>ArrayList();>>>// Instantiating list using Collections.addAll()>>Collections.addAll(list,>1>,>2>,>3>,>4>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
Вихід:List : [1, 2, 3, 4]>
-
Використання Collections.unmodifiableList()
Collections.unmodifiableList() повертає список, який не можна змінити, тобто він не може ні додати, ні видалити елемент. Будь-яка спроба змінити список призведе до UnsupportedOperationExample.
Синтаксис:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
приклад 1:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating the list>>List list = Collections.unmodifiableList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
Вихід:List : [1, 2, 3]>
приклад 2:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>try>{>>// Creating the list>>List list = Collections.unmodifiableList(>>Arrays.asList(>1>,>2>,>3>));>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>>// Trying to modify the list>>System.out.println(>'Trying to modify the list'>);>>list.set(>0>, list.get(>0>));>>}>>>catch>(Exception e) {>>System.out.println(>'Exception : '>+ e);>>}>>}>}>>
>
Вихід:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Використання Collections.singletonList()
Collections.singletonList() повертає незмінний список, що складається лише з одного елемента.
Синтаксис:
List list = Collections.singletonList(2);>
приклад 1:
import>java.util.*;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating the list>>List list = Collections.singletonList(>2>);>>>// Print the list>>System.out.println(>'List : '>+ list.toString());>>}>}>>
>
Вихід:List : [2]>
-
-
Використання Java 8 Stream
З появою Stream і функціонального програмування в Java 8 тепер можна створити будь-який потік об’єктів, а потім зібрати їх у вигляді списку.
Синтаксис:
1. List list = Stream.of(1, 2, 3) .collect(Collectors.toList()); 2. List list = Stream.of(1, 2, 3) .collect(Collectors.toCollection(ArrayList::new)); 3. List list = Stream.of(1, 2, 3, 4) .collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));>
приклади:
import>java.util.*;>import>java.util.stream.Collectors;>import>java.util.stream.Stream;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a List using Syntax 1>>List list1 = Stream.of(>1>,>2>,>3>)>>.collect(Collectors.toList());>>>// Printing the list>>System.out.println(>'List using Syntax 1: '>>+ list1.toString());>>>// Creating a List using Syntax 2>>List list2 = Stream>>.of(>3>,>2>,>1>)>>.collect(>>Collectors>>.toCollection(ArrayList::>new>));>>>// Printing the list>>System.out.println(>'List using Syntax 2: '>>+ list2.toString());>>>// Creating a List using Syntax 3>>List list3 = Stream>>.of(>1>,>2>,>3>,>4>)>>.collect(>>Collectors>>.collectingAndThen(>>Collectors.toList(),>>Collections::unmodifiableList));>>>// Printing the list>>System.out.println(>'List using Syntax 3: '>>+ list3.toString());>>}>}>>
>
Вихід:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Використання Java 9 List.of()
У Java 9 з’явився метод List.of(), який приймає будь-яку кількість аргументів і створює з них компактний і незмінний список.
Синтаксис:
List unmodifiableList = List.of(1, 2, 3);>
приклади:
import>java.util.List;>>public>class>GFG {>>public>static>void>main(String args[])>>{>>>// Creating a list using List.of()>>List unmodifiableList = List.of(>1>,>2>,>3>);>>>// Printing the List>>System.out.println(>'List : '>>+ unmodifiableList.toString());>>}>}>>
>
ВИХІД:
[1, 2, 3]>