Cómo crear una nueva lista en Java

Hassan Saeed 12 octubre 2023
  1. Crear una nueva lista vacía en Java
  2. Crear una nueva lista no vacía en Java
  3. Crear una Lista no vacía de tamaño fijo en Java
Cómo crear una nueva lista en Java

Este tutorial discutirá los métodos para crear diferentes tipos de listas en Java.

List en Java es una interfaz y está implementada por ArrayList, LinkedList, Vector y Stack. Proporciona una colección ordenada de objetos. El usuario tiene un control preciso sobre en qué parte de la lista se inserta cada elemento. El usuario puede acceder a los elementos por su índice entero (posición en la lista) y buscar elementos en la lista. Además, las listas también permiten almacenar elementos duplicados.

Crear una nueva lista vacía en Java

Como List es una interfaz, no podemos crear un objeto List directamente. Sin embargo, podemos crear objetos de las clases que implementan la interfaz de la Lista: ArrayList, LinkedList, Vector y Stack. He aquí una forma sencilla:

List myArrayList = new ArrayList();
List myLinkedList = new LinkedList();
List myVector = new Vector();
List myStack = new Stack();

Estos tipos de Listas no tienen un tipo de datos específico y pueden contener cualquier tipo de objetos y valores en él. Intentemos crearlas en Java y agregarle algunos valores.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    // ArrayList
    List myArrayList = new ArrayList();
    myArrayList.add(1);
    myArrayList.add(2);
    myArrayList.add("three");
    System.out.println("ArrayList: " + myArrayList);

    // LinkedList
    List myLinkedList = new LinkedList();
    myLinkedList.add(4);
    myLinkedList.add(5);
    myLinkedList.add("six");
    System.out.println("LinkedList: " + myLinkedList);

    // Stack
    List myStack = new Stack();
    myStack.add(7);
    myStack.add(8);
    myStack.add("nine");
    System.out.println("Stack: " + myStack);
  }
}

El código anterior da como resultado:

ArrayList: [1, 2, three]
LinkedList: [4, 5, six]
Stack: [7, 8, nine]

Podemos ver que hemos añadido los valores int y String a las listas sin ningún error.

Es posible especificar el tipo de datos de tal manera que sólo los valores de ese tipo en particular pueden ser almacenados. Intentemos otro ejemplo.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    // ArrayList
    List<Integer> myArrayList = new ArrayList<>();
    myArrayList.add(1);
    myArrayList.add(2);
    myArrayList.add("three");
    System.out.println("ArrayList: " + myArrayList);
  }
}

El código anterior da como resultado el siguiente error.

> /myClass.java:9: error: incompatible types: String cannot be converted to Integer
>         myArrayList.add("three");

Es porque al crear el objeto ArrayList, especificamos que el tipo de datos es Integer; por lo tanto, no aceptará ningún otro tipo de datos.

Crear una nueva lista no vacía en Java

Discutimos cómo crear objetos de la lista vacíos y luego agregar objetos a la lista. Ahora veamos otra forma de crear una Lista con objetos en ella.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<String> list = new ArrayList<String>() {
      {
        add("a");
        add("b");
      }
    };
    System.out.println("ArrayList: " + list);
  }
}

El código anterior da como resultado:

ArrayList: [a, b]

Crear una Lista no vacía de tamaño fijo en Java

También podemos crear una lista no vacía de tamaño fijo. Si es así, operaciones como add, remove no serán soportadas.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    System.out.println("ArrayList: " + list);
  }
}

Las salidas del código anterior:

ArrayList: [1, 2]

Veamos qué pasa si intentamos añadir otro elemento a esta lista.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    list.add(3);
    System.out.println("ArrayList: " + list);
  }
}

El código anterior da el siguiente error ya que no permite operaciones como add, remove, etc:

> Exception in thread "main" java.lang.UnsupportedOperationException
> 	at java.base/java.util.AbstractList.add(AbstractList.java:153)
> 	at java.base/java.util.AbstractList.add(AbstractList.java:111)
> 	at myClass.main(myClass.java:6)

Sin embargo, puede cambiar el valor en cualquier posición dada en este tipo de lista.

import java.util.*;

public class myClass {
  public static void main(String args[]) {
    List<Integer> list = Arrays.asList(1, 2);
    System.out.println("Initial ArrayList: " + list);
    list.set(1, 3);
    System.out.println("Changed ArrayList: " + list);
  }
}

El código anterior da como resultado:

Initial ArrayList: [1, 2]
Changed ArrayList: [1, 3]

Ahora sabemos cómo crear diferentes tipos de listas en Java.

Artículo relacionado - Java List