Las listas son un tipo de colección que hereda de la interface collection, son una estructura de datos que respeta el orden en el cual fueron agregados los elementos, también permiten registros repetidos.

Esta interface o los objetos de esta, representan una colección ordenada de elementos, en la cual se tiene un control absoluto y preciso del lugar en el que se quiere insertar.

Por medio de la Lista nosotros tenemos la posibilidad de decir en que posición (al inicio, al final o cualquier otro lugar) puede ser insertado o eliminado un elemento.

También es posible acceder a sus elementos a través de su índice; el cual representa la posición del elemento en la lista y así se podría buscar un elemento en dicha lista.

La interface List se encuentra en el paquete java.util, algunas de las clases que implementa esta interface son ArrayList, LinkedList, Vector.

Crear un ArrayList

List<String> lista = new ArrayList<>();

Creación mediante la clase Arrays

// Creamos el Array nombres
String [] nombres = {"Marco","Marisol","Roberto"};

// Mediante Arrays creamos una nueva lista
List<String> listaNombres = Arrays.asList(nombres);

Adición de elementos individuales

 // Creamos el ArrayList
 List<String> listaAutos = new ArrayList<>();
 
 // Agregamos un elemento a la lista
 listaAutos.add("Mercedes Benz");

Adición de elementos de otra colección

// Creamos una lista a la cual le pasamos una lista de autos
List <String> elementos = new ArrayList<>(listaAutos);

// A la lista elementos ahora le agregamos la listaNombres
// De esta forma estamos combinando dos listas
elementos.addAll(listaNombres);

Recorrer una lista

// Acontiniacion recorremos la lista elementos con un foreach

for (String str : elementos) {
	System.out.println(str);
}

Recorrer lista con ListIterator

ListIterator es un objeto que se apropia de los elementos de una colección y tiene funcionalidades que permiten recorrer dicha colección o lista. La ventaja de recorrer con iteradores en vez de realizarlo con ciclos ,es que, los iteradores nos permiten realizar acciones cuando estemos recorriendo la lista.

// Creamos el iterador
ListIterator<String> iterador = listaNombres.listIterator();

// Mediante el ciclo while lo recorremos
while (iterador.hasNext()){
	System.out.println(iterador.next());
}

Eliminar elementos de una lista

// El parametro 0 representa el indice que queremos eliminar
listaNombres.remove(0);

// Eliminar elemento mediante su nombre
listaNombres.remove("Roberto")

// Para eliminar todos los elmentos de la lista usamos clear
listaNombres.clear();

Estos son los usos más comunes que le podemos dar a las listas.

Si quieres aprender más sobre estructuras de datos te recomiendo que tomes el curso de Java Collections.

Java Collection