The Java.util.List je podrejeni vmesnik za Zbirka . Je urejena zbirka objektov, v kateri so lahko shranjene podvojene vrednosti. Ker seznam ohranja vrstni red vstavljanja, omogoča položajni dostop in vstavljanje elementov. Vmesnik seznama implementira ArrayList , LinkedList , Vektor in Stack razredi.
List je vmesnik in primerke List je mogoče ustvariti na naslednje načine:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Spodaj so naslednji načini inicializacije seznama:
-
Uporaba metode List.add().
Ker je seznam vmesnik, ga ni mogoče neposredno instancirati. Lahko pa ustvarimo objekte tistih razredov, ki imajo implementiran ta vmesnik, in jih ustvarimo.
Le malo razredov je implementiralo vmesnik List Stack, ArrayList, LinkedList, Vector itd.
Sintaksa:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Primeri:
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());>
>
}>
}>
>
>
Izhod:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Inicializacija dvojnih oklepajev se lahko uporablja tudi za opravljanje zgornjega dela.
Sintaksa:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>
Primeri:
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());>
>
}>
}>
>
>
Izhod:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Uporaba Arrays.asList()
- Ustvarjanje nespremenljivega seznama
Arrays.asList() ustvari nespremenljiv seznam iz matrike. Zato ga je mogoče uporabiti za ustvarjanje primerka seznama z matriko.
Sintaksa:
List list=Arrays.asList(1, 2, 3);>
Primeri:
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());>
>
}>
}>
>
>
Izhod:List : [1, 2, 3]>
- Ustvarjanje spremenljivega seznama
Sintaksa:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Primeri:
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());>
>
}>
}>
.enako java
>
>
Izhod:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Ustvarjanje nespremenljivega seznama
-
Uporaba metod razreda Collections
V razredu zbirk obstajajo različne metode, ki jih je mogoče uporabiti za instanciranje seznama. To so:
-
Uporaba Collections.addAll()
Zbirke razred ima statično metodo dodajVse() ki se lahko uporablja za inicializacijo seznama. Zbirke.addAll() prevzame poljubno število elementov, potem ko je določeno z zbirko, v katero naj bodo elementi vstavljeni.
Sintaksa:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Primeri:
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());>
>
}>
}>
>
>
Izhod:List : [1, 2, 3, 4]>
-
Uporaba Collections.unmodifiableList()
Collections.unmodifiableList() vrne seznam, ki ga ni mogoče spremeniti, tj. ne more dodati ali izbrisati elementa. Vsak poskus spreminjanja seznama bo povzročil UnsupportedOperationExample.
Sintaksa:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Primer 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());>
>
}>
}>
>
>
Izhod:List : [1, 2, 3]>
Primer 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);>
>
}>
>
}>
}>
>
>
Izhod:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Uporaba Collections.singletonList()
Collections.singletonList() vrne nespremenljiv seznam, sestavljen samo iz enega elementa.
Sintaksa:
List list = Collections.singletonList(2);>
Primer 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());>
>
}>
}>
>
>
Izhod:List : [2]>
-
-
Uporaba Java 8 Stream
Z uvedbo toka in funkcionalnega programiranja v Javi 8 lahko zdaj sestavite poljuben tok objektov in jih nato zberete kot seznam.
Sintaksa:
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));>
Primeri:
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());>
>
}>
}>
>
>
Izhod:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Uporaba Jave 9 List.of()
Java 9 je uvedla metodo List.of(), ki sprejme poljubno število argumentov in iz njih sestavi kompakten in nespremenljiv seznam.
Sintaksa:
List unmodifiableList = List.of(1, 2, 3);>
Primeri:
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());>
>
}>
}>
>
>
IZHOD:
[1, 2, 3]>