Inicialización de una Lista en una sola línea

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En Java, podemos inicializar una List en una sola línea de código utilizando una variedad de enfoques. En este laboratorio, aprenderemos diferentes métodos para inicializar List en Java de manera concisa.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/BasicSyntaxGroup -.-> java/output("Output") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ProgrammingTechniquesGroup -.-> java/lambda("Lambda") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/inner_classes("Inner Classes") java/FileandIOManagementGroup -.-> java/stream("Stream") subgraph Lab Skills java/output -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/arrays -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/collections_methods -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/lambda -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/classes_objects -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/arraylist -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/inner_classes -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} java/stream -.-> lab-117970{{"Inicialización de una Lista en una sola línea"}} end

Usando el método Arrays.asList()

Podemos crear una List a partir de una matriz utilizando el método asList(). Este método toma directamente los elementos como parámetros y devuelve una lista de tamaño fijo. Si se intenta agregar un elemento, se lanza una UnsupportedOperationException.

import java.util.Arrays;
import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Arrays.asList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Para ejecutar el código, abra la línea de comandos, navegue hasta el directorio del proyecto y ejecute los siguientes comandos:

javac ListInitializationDemo.java
java ListInitializationDemo

Usando flujos de Java 8

Los flujos de Java se pueden utilizar para crear una List a partir de los elementos del flujo utilizando el método collect().

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Stream.of("red", "blue", "green")
                                       .collect(Collectors.toList());
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Para ejecutar el código, abra la línea de comandos, navegue hasta el directorio del proyecto y ejecute los siguientes comandos:

javac ListInitializationDemo.java
java ListInitializationDemo

Usando el método List.of()

Java 9 proporciona un método List.of() sobrecargado para listas mutables e inmutables.

import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = List.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

Para ejecutar el código, abra la línea de comandos, navegue hasta el directorio del proyecto y ejecute los siguientes comandos:

javac ListInitializationDemo.java
java ListInitializationDemo

Usando la sintaxis de doble llave

La Inicialización de Doble Llave se puede utilizar para una Clase Anónima Interna para inicializar una List.

import java.util.List;
import java.util.ArrayList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = new ArrayList<String>() {
            {
                add("red");
                add("blue");
                add("green");
            }
        };
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Para ejecutar el código, abra la línea de comandos, navegue hasta el directorio del proyecto y ejecute los siguientes comandos:

javac ListInitializationDemo.java
java ListInitializationDemo

Usando Apache Commons Collections

Apache Commons Collections proporciona el método unmodifiableList() que devuelve una vista no modificable de la lista especificada.

import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ListUtils.unmodifiableList(
                Arrays.asList("red", "blue", "green")
        );
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Para ejecutar el código, abra la terminal, vaya al directorio del proyecto y ejecute los siguientes comandos:

javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo

Usando la biblioteca Guava

La biblioteca Guava proporciona el método newArrayList() que devuelve una ArrayList mutable inicializada con los elementos.

import java.util.List;
import com.google.common.collect.Lists;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Lists.newArrayList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Para ejecutar el código, abra la terminal, vaya al directorio del proyecto y ejecute los siguientes comandos:

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Usando ImmutableList de Guava

Guava también proporciona la clase ImmutableList que devuelve una lista inmutable.

import java.util.List;
import com.google.common.collect.ImmutableList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ImmutableList.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

Para ejecutar el código, abra la terminal, vaya al directorio del proyecto y ejecute los siguientes comandos:

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Resumen

En Java, hay numerosas maneras de inicializar una List en una sola línea de código. Hemos visto cómo utilizar Java 8 Stream para crear una List, el uso del método Arrays.asList() y el método List.of() para las versiones de Java posteriores a la 9. También hemos visto la Inicialización de Doble Llave y un ejemplo de cómo se pueden utilizar bibliotecas Java externas como Apache Commons Collections y Guava.