
package ArrayList;

import java.util.ArrayList;
import java.util.Scanner;

public class AList {


    public static void main(String[] args) {

        //ArrayList.
        
        //→ Diferencia respecto a Arrays. [Se trata de una estructura dinámica]. (Se puede añadir y eliminar elementos dinámicamente).
        
        //Cuando se declara un ArrayList, normalmente se debe especificar, que tipo de objeto almacena.
        
        //size(), es un método que nos proporciona la clase List (ArrayList), y representa el tamaño o la cantidad de elementos que tiene dicha lista.
        
//        ArrayList<Double> puntuaciones = new ArrayList<>();
//        
//        //3 Puntuaciones [Dinámicamente]
//        puntuaciones.add(8.5); // 1 Elemento total
//        puntuaciones.add(6.33);// 2 Elemento total
//        puntuaciones.add(4.75);// 3 Elemento total
//
//       //Como lo recorro.
//        for (int i = 0; i < puntuaciones.size(); i++) {
//            System.out.println("Puntuación "+i+": "+puntuaciones.get(i));
//        }
//        
//        //Quiero eliminar la segunda posición.
//        
//        puntuaciones.remove(1); //2ª Posición = 1 [Comienza por 0].
//        
//               //Como lo recorro.
//        for (int i = 0; i < puntuaciones.size(); i++) {
//            System.out.println("Puntuación "+i+": "+puntuaciones.get(i));
//        }
        
        
        //Ejercicio. Crea un array dinámico (String) y ve introduciendo palabras hasta haber introducido 10 palabras, recorrelo, después elimina la última posición, utilizando los métodos (sin poner número 9).
        
      /*  ArrayList <String> dinamico = new ArrayList();
        dinamico.add("Lucas");
        dinamico.add("Alex");
        dinamico.add("Lidia");
        dinamico.add("Daniel");
        dinamico.add("Antonio");
        dinamico.add("Axel");
        dinamico.add("Lucia");
        dinamico.add("Paula");
        dinamico.add("Marcos");
        dinamico.add("Carlos");
        
        for(int i = 0; i < dinamico.size(); i++)
        {
            System.out.println("Dinamico: " + i + " : " + dinamico.get(i));
        }
        dinamico.remove(9);
        
        System.out.println("======================");
        
        for(int j = 0; j < dinamico.size(); j++)
        {
            System.out.println("Probando: " + j + " : " + dinamico.get(j));
        }
        */
        
        //Se quiere añadir números a un ArrayList indefinidamente, hasta que se pulse el número 0. Después de esto di el número total de elementos que tiene el array, y imprime todos los elementos.
        
        //while
        
        ArrayList <Integer> numeros = new ArrayList();
        Scanner scanner = new Scanner(System.in);
        
        int numero = -1;
        
        while (numero != 0){
                   System.out.println("Introduzca un numero, por favor: ");
        numero = scanner.nextInt();
        
        numeros.add(numero);
        }
        
        //Tamaño del arrayList
        System.out.println("Tamaño del ArrayList: "+numeros.size());
        
        //Recorrer elementos.
        for (int i = 0; i < numeros.size(); i++) {
            System.out.println("Numero  "+i+" : " + numeros.get(i));
        }
        
        //Pide al usuario un número para eliminar dentro del array y vuelvo a recorrerlo.
        System.out.println("Introduzca un numero para eliminar: ");
        numero = scanner.nextInt(); //numero (1 elemento)
        numeros.remove(numero); //numeros (N elementos).
        for (int j = 0; j < numeros.size(); j++) {
            System.out.println("Numeros: " + j +": "+ numeros.get(j)); 
        }
        
        
    }
}