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]>