//ArrayListDemo.java
//Illustrates the following methods of the ArrayList class:
//add()
//get()
//size()
//remove()

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListDemo
{
    public static void main(String[] args)
    {
        ArrayList<String> toDoList = new ArrayList<String>();
        //ArrayList<String> toDoList = new ArrayList<>(); //type inference
        System.out.println("\nEnter items for the list, when prompted.");
        boolean done = false;
        Scanner keyboard = new Scanner(System.in);

        while (!done)
        {
            System.out.print("Type an entry: ");
            String entry = keyboard.nextLine();
            toDoList.add(entry);
            System.out.print("More items for the list? (y[n]) ");

            String ans = keyboard.nextLine();
            if (!ans.equalsIgnoreCase("y")) done = true;
        }
        System.out.println("\nThe list contains the following items:");
        for (int position = 0; position < toDoList.size(); position++)
            System.out.println(toDoList.get(position));
        System.out.print("Size of the list = ");
        System.out.println(toDoList.size());

        //Alternate code for displaying the list
        System.out.println("\nThe list contains the following items:");
        for (String element : toDoList)
            System.out.println(element);
        System.out.print("Size of the list = ");
        System.out.println(toDoList.size());
        System.out.print("Press Enter to continue ... ");
        keyboard.nextLine();

        //Now remove items and display again (Oops!)
        for (int position = 0; position < toDoList.size(); position++)
            toDoList.remove(position);
        System.out.println("\nThe list contains the following items:");
        for (String element : toDoList)
            System.out.println(element);
        System.out.print("Size of the list = ");
        System.out.println(toDoList.size());
   }
}
