Der Java.util.List ist eine untergeordnete Schnittstelle von Sammlung . Es handelt sich um eine geordnete Sammlung von Objekten, in denen doppelte Werte gespeichert werden können. Da List die Einfügereihenfolge beibehält, ermöglicht es den Positionszugriff und das Einfügen von Elementen. Die Listenschnittstelle wird implementiert von Anordnungsliste , LinkedList , Vektor Und Stapel Klassen.
List ist eine Schnittstelle und die Instanzen von List können auf folgende Weise erstellt werden:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Im Folgenden finden Sie die folgenden Möglichkeiten zum Initialisieren einer Liste:
-
Verwenden der List.add()-Methode
Da list eine Schnittstelle ist, kann man sie nicht direkt instanziieren. Man kann jedoch Objekte derjenigen Klassen erstellen, die diese Schnittstelle implementiert haben, und diese instanziieren.
Nur wenige Klassen haben die List-Schnittstelle implementiert Stapel, ArrayList, LinkedList, Vektor usw.
Syntax:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Beispiele:
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());>
>
}>
}>
>
>
Ausgabe:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Initialisierung mit doppelter Klammer kann auch für die oben genannten Arbeiten verwendet werden.
Syntax:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>
Beispiele:
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());>
>
}>
}>
>
>
Ausgabe:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Verwenden von Arrays.asList()
- Erstellen einer unveränderlichen Liste
Arrays.asList() Erstellt eine unveränderliche Liste aus einem Array. Daher kann es verwendet werden, um eine Liste mit einem Array zu instanziieren.
Syntax:
List list=Arrays.asList(1, 2, 3);>
Beispiele:
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());>
>
}>
}>
>
>
Ausgabe:List : [1, 2, 3]>
- Veränderbare Liste erstellen
Syntax:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Beispiele:
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());>
>
}>
}>
C++-String-Split
>
>
Ausgabe:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Erstellen einer unveränderlichen Liste
-
Verwenden der Methoden der Collections-Klasse
In der Collections-Klasse gibt es verschiedene Methoden, mit denen eine Liste instanziiert werden kann. Sie sind:
-
Verwenden von Collections.addAll()
Sammlungen Klasse hat eine statische Methode füge alle Hinzu() mit dem eine Liste initialisiert werden kann. Collections.addAll() nimmt eine beliebige Anzahl von Elementen auf, nachdem es mit der Collection angegeben wurde, in die die Elemente eingefügt werden sollen.
Syntax:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Beispiele:
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());>
>
}>
}>
>
>
Ausgabe:List : [1, 2, 3, 4]>
-
Verwenden von Collections.unmodifiableList()
Collections.unmodifiableList() Gibt eine Liste zurück, die nicht geändert werden kann, d. h. es kann weder ein Element hinzugefügt noch gelöscht werden. Jeder Versuch, die Liste zu ändern, führt zu einem UnsupportedOperationExample.
Syntax:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Beispiel 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());>
>
}>
}>
>
>
Ausgabe:List : [1, 2, 3]>
Beispiel 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);>
>
}>
>
}>
}>
>
>
Ausgabe:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Verwenden von Collections.singletonList()
Collections.singletonList() gibt eine unveränderliche Liste zurück, die nur aus einem Element besteht.
Syntax:
List list = Collections.singletonList(2);>
Beispiel 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());>
>
}>
}>
>
>
Ausgabe:List : [2]>
-
-
Verwendung von Java 8 Stream
Mit der Einführung von Stream und funktionaler Programmierung in Java 8 kann man nun einen beliebigen Stream von Objekten erstellen und diese dann als Liste sammeln.
Syntax:
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));>
Beispiele:
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());>
>
}>
}>
>
>
Ausgabe:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Verwenden von Java 9 List.of()
Mit Java 9 wurde die Methode List.of() eingeführt, die eine beliebige Anzahl von Argumenten aufnimmt und daraus eine kompakte und nicht veränderbare Liste erstellt.
Syntax:
List unmodifiableList = List.of(1, 2, 3);>
Beispiele:
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());>
>
}>
}>
>
>
AUSGABE:
[1, 2, 3]>