https://www.w3schools.com/java/java_arraylist.asp
https://www.arquitecturajava.com/java-arraylist-for-y-sus-opciones/
https://www.geeksforgeeks.org/arraylist-in-java/
https://www.programiz.com/java-programming/arraylist
https://www.javatpoint.com/java-arraylist
// Definición de ArrayList
// Lo que está entre '<' y '>' es un tipo genérico
// Esto es correcto y lo preferido
List<String> lista = new ArrayList<String>();
// Esto es completamente correcto
ArrayList<String> otraLista = new ArrayList<String>();
// Para añadir 'add'. Si no especificamos posición, se añade al final
// Si especificamos posición se añade en esa posición
lista.add("Eva"); // ['Eva']
lista.add("Juan"); // ['Eva','Juan']
lista.add(1, "Ana");// ['Eva','Ana','Juan']
lista.add(0, "Pep");// ['Pep','Eva','Ana','Juan']
// Al imprimir se muestra de una manera bastante visual
System.out.println(lista);
// Con get obtenemos el elemnto en esa posición
System.out.println(lista.get(0));
// Cambiar el elemento que está en una posición determinada
lista.set(1, "Pep"); // ['Pep','Pep','Ana','Juan']
System.out.println(lista);
// Nos elimina el elemento en la posición 1
lista.remove(1); // ['Pep','Ana','Juan']
System.out.println(lista);
// Nos elimina el elemento que vale "Ana"
lista.remove("Ana"); // ['Pep','Juan']
System.out.println(lista);
lista.add("Eva");
lista.add("Juan");
lista.add(1, "Ana");
// Recorrer con un foreach
for (String l : lista) {
System.out.println(l);
}
// Recorrer con un for normal
for(int i=0;i<lista.size();i++) {
System.out.println(lista.get(i));
}
// contains nos dice si un elemento está o no está en el arraylist
// true or false
System.out.println(lista.contains("Eva")); // true
// indexOf nos dice la posición del elemento en el arraylist
System.out.println(lista.indexOf("Juan")); // 2
System.out.println(lista.indexOf("Rosa")); // -1
// Podemos ordenar usando la utilidad sort de la clase Collections
Collections.sort(lista);
System.out.println(lista);