The Java.util.Seznam je podřízeným rozhraním Sbírka . Jedná se o uspořádanou kolekci objektů, ve které mohou být uloženy duplicitní hodnoty. Protože Seznam zachovává pořadí vložení, umožňuje poziční přístup a vkládání prvků. List Interface je implementován pomocí ArrayList , Spojový seznam , Vektor a Zásobník třídy.
Seznam je rozhraní a instance seznamu lze vytvářet následujícími způsoby:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
Níže jsou uvedeny následující způsoby inicializace seznamu:
-
Pomocí metody List.add().
Protože seznam je rozhraní, nelze jej přímo vytvořit. Je však možné vytvořit objekty těch tříd, které implementovaly toto rozhraní, a vytvořit je.
Málo tříd, které implementovaly rozhraní List, jsou Zásobník, ArrayList, LinkedList, Vector atd.
Syntax:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Příklady:
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());>
>
}>
}>
>
>
Výstup:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Inicializace dvojité závorky lze také použít k provedení výše uvedené práce.
Syntax:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>
Příklady:
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());>
>
}>
}>
>
>
Výstup:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Použití Arrays.asList()
- Vytvoření neměnného seznamu
Arrays.asList() vytvoří neměnný seznam z pole. Lze jej tedy použít k vytvoření instance seznamu pomocí pole.
Syntax:
List list=Arrays.asList(1, 2, 3);>
Příklady:
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());>
>
}>
}>
>
>
Výstup:List : [1, 2, 3]>
- Vytvoření proměnlivého seznamu
Syntax:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Příklady:
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 ukázkové programy programování
>
>
Výstup:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Vytvoření neměnného seznamu
-
Použití metod třídy Collections
Ve třídě Collections existují různé metody, které lze použít k vytvoření instance seznamu. Oni jsou:
-
Použití Collections.addAll()
Sbírky třída má statickou metodu přidat vše() které lze použít k inicializaci seznamu. Collections.addAll() přijmout libovolný počet prvků poté, co je to specifikováno v kolekci, do které mají být prvky vloženy.
Syntax:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Příklady:
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());>
>
}>
}>
>
>
Výstup:List : [1, 2, 3, 4]>
-
Použití Collections.unmodifiableList()
Collections.unmodifiableList() vrátí seznam, který nelze změnit, tj. nemůže přidat ani odstranit prvek. Jakýkoli pokus o úpravu seznamu bude mít za následek UnsupportedOperationExample.
Syntax:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Příklad 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());>
>
}>
}>
>
>
Výstup:List : [1, 2, 3]>
Příklad 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);>
>
}>
>
}>
}>
>
>
Výstup:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Použití Collections.singletonList()
Collections.singletonList() vrátí neměnný seznam skládající se pouze z jednoho prvku.
Syntax:
List list = Collections.singletonList(2);>
Příklad 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());>
>
}>
}>
>
>
Výstup:List : [2]>
-
-
Použití Java 8 Stream
Se zavedením Streamu a funkčního programování v Javě 8 lze nyní sestavit libovolný proud objektů a poté je shromáždit jako seznam.
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));>
Příklady:
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());>
>
}>
}>
>
>
Výstup:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Použití Java 9 List.of()
Java 9 představila metodu List.of(), která přebírá libovolný počet argumentů a vytváří z nich kompaktní a nemodifikovatelný seznam.
Syntax:
List unmodifiableList = List.of(1, 2, 3);>
Příklady:
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());>
>
}>
}>
>
>
VÝSTUP:
[1, 2, 3]>