ArrayList

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);