import java.util.ArrayList;

public class ArrayListExperiment {
	private ArrayList<Integer> numbers;

	public ArrayListExperiment(){
		numbers = new ArrayList<Integer>();

		numbers.add(7);
		numbers.add(10);
		numbers.add(3);
		numbers.add(8);
		numbers.add(1);
	}

	public void doExperiment(){
		System.out.println("Initial values in the list:");
		printArrayList();
		
		// the 1 is an int value and so remove(int i) is called and removes the 10 which is in index 1
		numbers.remove(1);
		System.out.println("After doing numbers.remove(1):");
		printArrayList();
		
		// the 3 is an Integer so remove(Object o) is called note that tthis method uses .equals() to determine which element to remove not == 
		numbers.remove(new Integer(3));
		System.out.println("After doing numbers.remove(new Integer(3)):");
		printArrayList();
		
	}

	public void printArrayList(){
		for(Integer number : numbers){
			System.out.print(number+"  ");
		}
		System.out.print("\n\n");
	}	

	public static void main(String[] commandlineArguments){
		ArrayListExperiment myExperiment = new ArrayListExperiment();
		myExperiment.doExperiment();
	}
}
