// Sintaxis ArrayList<Tipo de datos> nombre = new ArrayList<Tipo>()
ArrayList<String> lista = new ArrayList<String>();
// Lo mismo pero no especifico tipo
ArrayList<String> lista2 = new ArrayList<>();
// Lo mismo pero usando la clase abstracta
List<String> lista3=new ArrayList<String>();
// Muy importante: el tipo tiene que ser una clase
//ArrayList<int> enteros=new ArrayList<int>();
// Utilizar unas clases 'wrapper' (envolventes)
// Que son lo mismo que los tipos primitivos pero en clase
ArrayList<Integer> enteros=new ArrayList<Integer>();
ArrayList<Boolean> boleanos=new ArrayList<Boolean>();
ArrayList<Double> decimales=new ArrayList<Double>();
// No especificamos tamaño, porque es dinámico
// Yo añado elementos con add, los que quiera
enteros.add(5);
enteros.add(9);
enteros.add(13);
System.out.println(enteros);
// Puedo recorrer con un for :
for(Integer i:enteros) {
System.out.println(i);
}
// Con un for normal usando el size (tamaño)
for(int i=0;i<enteros.size();i++) {
// con get obtenemos el elemento en esa posición
System.out.println(enteros.get(i));
}
// Podemos usar el foreach
enteros.forEach(x->System.out.println(x));
ArrayList<LocalDate> fechas= new ArrayList<LocalDate>();
fechas.add(LocalDate.now());
// Añadir en un índice determinado
enteros.add(1,666);
System.out.println(enteros);
// Eliminamos el elemento de la posición 2
enteros.remove(2);
System.out.println(enteros);
// Si un elemento está dentro el arraylist
System.out.println(enteros.contains(5)); // true
System.out.println(enteros.contains(90)); // false
// Buscar la posición de un elemento
System.out.println(enteros.indexOf(13)); // 2
System.out.println(enteros.indexOf(130)); // -1 porque no lo encuentra