El Java.util.List es una interfaz secundaria de Recopilación . Es una colección ordenada de objetos en los que se pueden almacenar valores duplicados. Dado que List conserva el orden de inserción, permite el acceso posicional y la inserción de elementos. La interfaz de lista es implementada por Lista de arreglo , Lista enlazada , Vector y Pila clases.

List es una interfaz y las instancias de List se pueden crear de las siguientes maneras:
List a = new ArrayList(); List b = new LinkedList(); List c = new Vector(); List d = new Stack();>
A continuación se muestran las siguientes formas de inicializar una lista:
-
Usando el método List.add()
Dado que la lista es una interfaz, no se puede crear una instancia de ella directamente. Sin embargo, se pueden crear objetos de aquellas clases que hayan implementado esta interfaz y crear instancias de ellos.
Pocas clases que han implementado la interfaz List son Pila, ArrayList, LinkedList, Vector etc.
Sintaxis:
List list=new ArrayList(); List llist=new LinkedList(); List stack=new Stack();>
Ejemplos:
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());>>}>}>>
>
Producción:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
Inicialización de doble llave También se puede utilizar para realizar el trabajo anterior.
Sintaxis:
List list=new ArrayList(){{ add(1); add(2); add(3); }};>Ejemplos:
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());>>}>}>>
>
Producción:ArrayList : [1, 3] LinkedList : [2, 4] Stack : [3, 1]>
-
Usando Arrays.asList()
- Creando una lista inmutable
matrices.asList() crea una lista inmutable a partir de una matriz. Por lo tanto, se puede utilizar para crear instancias de una lista con una matriz.
Sintaxis:
List list=Arrays.asList(1, 2, 3);>
Ejemplos:
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());>>}>}>>
>
Producción:List : [1, 2, 3]>
- Crear lista mutable
Sintaxis:
List list=new ArrayList(Arrays.asList(1, 2, 3));>
Ejemplos:
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());>>}>}>doble a cadena java
>
>
Producción:List : [1, 2, 3] Modified list : [1, 2, 3, 5]>
- Creando una lista inmutable
-
Usando métodos de clase Colecciones
Hay varios métodos en la clase Colecciones que se pueden usar para crear instancias de una lista. Ellos son:
-
Usando Colecciones.addAll()
Colecciones la clase tiene un método estático añadir todo() que se puede utilizar para inicializar una lista. Colecciones.addAll() tome cualquier número de elementos después de que se especifique con la Colección en la que se insertarán los elementos.
Sintaxis:
List list = Collections.EMPTY_LIST; Collections.addAll(list = new ArrayList(), 1, 2, 3, 4);>
Ejemplos:
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());>>}>}>>
>
Producción:List : [1, 2, 3, 4]>
-
Usando Collections.unmodifiableList()
Colecciones.listainmodificable() devuelve una lista que no se puede modificar, es decir, no se puede agregar ni eliminar un elemento. Cualquier intento de modificar la lista dará como resultado un UnsupportedOperationExample.
Sintaxis:
List list = Collections .unmodifiableList(Arrays.asList(1, 2, 3));>
Ejemplo 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());>>}>}>>
>
Producción:List : [1, 2, 3]>
Ejemplo 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);>>}>>}>}>>
>
Producción:List : [1, 2, 3] Trying to modify the list Exception : java.lang.UnsupportedOperationException>
-
Usando Colecciones.singletonList()
Colecciones.singletonList() devuelve una lista inmutable que consta de un solo elemento.
Sintaxis:
List list = Collections.singletonList(2);>
Ejemplo 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());>>}>}>>
>
Producción:List : [2]>
-
-
Usando la secuencia de Java 8
Con la introducción de Stream y la programación funcional en Java 8, ahora se puede construir cualquier flujo de objetos y luego recopilarlos como una lista.
Sintaxis:
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));>
Ejemplos:
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());>>}>}>>
>
Producción:List using Syntax 1: [1, 2, 3] List using Syntax 2: [3, 2, 1] List using Syntax 3: [1, 2, 3, 4]>
-
Usando Java 9 List.of()
Java 9 introdujo el método List.of() que toma cualquier número de argumentos y construye una lista compacta y no modificable a partir de ellos.
Sintaxis:
List unmodifiableList = List.of(1, 2, 3);>
Ejemplos:
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());>>}>}>>
>
PRODUCCIÓN:
[1, 2, 3]>