package generics3;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Demonstriert das löschen von Elementen mit einem Iterator.
 * 
 * @author Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet
 *         Osnabrueck
 * @date 15.05.2007
 */
public class StringList {
	public static void main(String[] args) {

		List<List<String>> stringLists = new ArrayList<List<String>>();

		List<String> l1 = new ArrayList<String>();
		List<String> l2 = new ArrayList<String>();
		List<String> l3 = new ArrayList<String>();

		for (String s : "1 2 3 4 5 6 7 8 9".split(" "))
			l1.add(s);

		for (String s : "a b c d e f g h i".split(" "))
			l2.add(s);

		for (String s : "! § $ % & / ( ) =".split(" "))
			l3.add(s);

		stringLists.add(l1);
		stringLists.add(l2);
		stringLists.add(l3);

		// Iterator-Objekt beschaffen
		// Auch der Iterator ist typsicher!
		Iterator<List<String>> myIterator = stringLists.iterator();

		// Mit dem Iterator die Liste durchlaufen
		if (myIterator.hasNext())
			System.out.println(myIterator.next());

		myIterator.remove();

		// Concurrent modify
		// stringLists.remove(2);

		if (myIterator.hasNext())
			System.out.println(myIterator.next());
	}
}
