De Java.util.List er et barnegrensesnitt av Samling . Det er en ordnet samling av objekter der dupliserte verdier kan lagres. Siden List bevarer innsettingsrekkefølgen, tillater den posisjonstilgang og innsetting av elementer. Listegrensesnitt er implementert av ArrayList , LinkedList , Vektor og Stable klasser.
List er et grensesnitt, og forekomstene av List kan opprettes på følgende måter:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Nedenfor er følgende måter å initialisere en liste på:
-
Bruker List.add() metoden
Siden listen er et grensesnitt, kan man ikke instansiere den direkte. Imidlertid kan man lage objekter av de klassene som har implementert dette grensesnittet og instansiere dem.
Få klasser som har implementert List-grensesnittet er Stack, ArrayList, LinkedList, Vector etc.
Syntaks:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Eksempler:
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());>
>
}>
}>
>
>
Produksjon:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Dobbel brace initialisering kan også brukes til å utføre arbeidet ovenfor.
Syntaks:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>
Eksempler:
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());>
>
}>
}>
>
>
Produksjon:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Bruke Arrays.asList()
- Opprette uforanderlig liste
Arrays.asList() oppretter en uforanderlig liste fra en matrise. Derfor kan den brukes til å instansiere en liste med en matrise.
Syntaks:
List list=Arrays.asList(1, 2, 3);>
Eksempler:
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());>
>
}>
}>
>
>
Produksjon:List : [1, 2, 3]>
- Opprette foranderlig liste
Syntaks:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Eksempler:
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());>
>
}>
}>
homogen blanding
>
>
Produksjon:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Opprette uforanderlig liste
-
Bruke klassemetoder for samlinger
Det er forskjellige metoder i klassen Samlinger som kan brukes til å instansiere en liste. De er:
-
Bruke Collections.addAll()
Samlinger klasse har en statisk metode Legg til alle() som kan brukes til å initialisere en liste. Collections.addAll() ta inn et hvilket som helst antall elementer etter at det er spesifisert med samlingen som elementene skal settes inn i.
Syntaks:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Eksempler:
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());>
>
}>
}>
>
>
Produksjon:List : [1, 2, 3, 4]>
-
Bruke Collections.unmodifiableList()
Collections.unmodifiableList() returnerer en liste som ikke kan endres, dvs. den kan verken legge til eller slette et element. Ethvert forsøk på å endre listen vil resultere i et UnsupportedOperationExample.
Syntaks:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Eksempel 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());>
>
}>
}>
>
>
Produksjon:List : [1, 2, 3]>
Eksempel 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);>
>
}>
>
}>
}>
>
>
Produksjon:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Bruke Collections.singletonList()
Collections.singletonList() returnerer en uforanderlig liste som kun består av ett element.
Syntaks:
List list = Collections.singletonList(2);>
Eksempel 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());>
>
}>
}>
>
>
Produksjon:List : [2]>
-
-
Bruker Java 8 Stream
Med introduksjonen av Stream og funksjonell programmering i Java 8, kan man nå konstruere hvilken som helst strøm av objekter og deretter samle dem som en liste.
Syntaks:
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));>
Eksempler:
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());>
>
}>
}>
>
>
Produksjon:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Bruke Java 9 List.of()
Java 9 introduserte List.of()-metoden som tar inn et hvilket som helst antall argumenter og konstruerer en kompakt og ikke-modifiserbar liste av dem.
Syntaks:
List unmodifiableList = List.of(1, 2, 3);>
Eksempler:
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());>
>
}>
}>
>
>
PRODUKSJON:
[1, 2, 3]>