package uk.ac.cam.rkh23.Collections;

import java.util.ArrayList;
import java.util.Iterator;

public class LoopDeletion {

	public static void main(String[] args) {
		
		// Create some data in a list and clone it twice
		ArrayList<Integer> alist = new ArrayList<Integer>();
		for (int i=0; i<10; i++) alist.add(i);
		ArrayList<Integer> alist2 = (ArrayList<Integer>)alist.clone();
		ArrayList<Integer> alist3 = (ArrayList<Integer>)alist.clone();
		
		// ======================================== 
		// Normal for loop
		for (int i=0; i<alist.size(); i++) {
			System.out.print(alist.get(i));
			alist.remove(i);
		}
		System.out.println("");
		
		
		// ======================================== 
		// Iterator-based loop
		Iterator<Integer> it = alist2.iterator();
		while(it.hasNext()) {
			System.out.print(it.next());
			it.remove();
		}
		System.out.println("");
		
		
		// ======================================== 
		// For-each loop
		for(Integer i : alist3) {
			System.out.print(i);
			alist3.remove(i);
		}
		
		
	}
}
