The Lista.util.Java jest interfejsem potomnym Kolekcja . Jest to uporządkowany zbiór obiektów, w którym można przechowywać zduplikowane wartości. Ponieważ List zachowuje kolejność wstawiania, umożliwia dostęp pozycyjny i wstawianie elementów. Interfejs listy jest implementowany przez Lista tablic , Połączona lista , Wektor I Stos zajęcia.
Lista jest interfejsem, a instancje Listy można tworzyć na następujące sposoby:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Poniżej znajdują się następujące sposoby inicjowania listy:
-
Korzystanie z metody List.add().
Ponieważ lista jest interfejsem, nie można bezpośrednio utworzyć jej instancji. Można jednak tworzyć obiekty klas, które zaimplementowały ten interfejs i tworzyć ich instancje.
Niewiele klas, które zaimplementowały interfejs List, to Stos, ArrayList, LinkedList, wektor itp.
Składnia:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Przykłady:
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());>
>
}>
}>
>
>
Wyjście:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Inicjalizacja podwójnego nawiasu można również wykorzystać do wykonania powyższej pracy.
Składnia:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>
Przykłady:
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());>
>
}>
}>
>
>
Wyjście:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Korzystanie z Arrays.asList()
- Tworzenie niezmiennej listy
Tablice.asList() tworzy niezmienną listę z tablicy. Dlatego można go użyć do utworzenia instancji listy z tablicą.
Składnia:
List list=Arrays.asList(1, 2, 3);>
Przykłady:
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());>
>
}>
}>
>
>
Wyjście:List : [1, 2, 3]>
- Tworzenie listy modyfikowalnej
Składnia:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Przykłady:
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());>
>
}>
}>
dodaj tablicę Java
>
>
Wyjście:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Tworzenie niezmiennej listy
-
Korzystanie z metod klasy Collections
W klasie Collections istnieją różne metody, których można użyć do utworzenia instancji listy. Oni są:
-
Korzystanie z Collections.addAll()
Kolekcje klasa ma metodę statyczną dodać wszystko() którego można użyć do zainicjowania listy. Kolekcje.addAll() przyjąć dowolną liczbę elementów po określeniu w kolekcji, w której elementy mają zostać wstawione.
Składnia:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Przykłady:
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());>
>
}>
}>
>
>
Wyjście:List : [1, 2, 3, 4]>
-
Korzystanie z Collections.unmodibleList()
Kolekcje.niemodyfikowalnaList() zwraca listę, której nie można zmienić, tzn. nie można dodać ani usunąć elementu. Każda próba modyfikacji listy zakończy się zwróceniem UnsupportedOperationExample.
Składnia:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Przykład 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());>
>
}>
}>
>
>
Wyjście:List : [1, 2, 3]>
Przykład 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);>
>
}>
>
}>
}>
>
>
Wyjście:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Korzystanie z Collections.singletonList()
Kolekcje.singletonList() zwraca niezmienną listę składającą się tylko z jednego elementu.
Składnia:
List list = Collections.singletonList(2);>
Przykład 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());>
>
}>
}>
>
>
Wyjście:List : [2]>
-
-
Korzystanie ze strumienia Java 8
Wraz z wprowadzeniem programowania strumieniowego i funkcjonalnego w Javie 8 można teraz skonstruować dowolny strumień obiektów, a następnie zebrać je w postaci listy.
Składnia:
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));>
Przykłady:
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());>
>
}>
}>
>
>
Wyjście:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Korzystanie z Java 9 List.of()
W Javie 9 wprowadzono metodę List.of(), która pobiera dowolną liczbę argumentów i tworzy z nich zwartą i niemodyfikowalną listę.
Składnia:
List unmodifiableList = List.of(1, 2, 3);>
Przykłady:
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());>
>
}>
}>
>
>
WYJŚCIE:
[1, 2, 3]>