package dk.itu.oop.lecture5; import java.util.*; import java.io.BufferedReader; import java.io.InputStreamReader; public class IteratorTest { public static void print(String s,OOPIterator it){ System.out.println("--- "+s+" ---"); // clone the iterator, or it cannot be used afterwards OOPIterator printItr = it.cloneMe(); while ( printItr.hasNext() ) // all elements upto, but not incl. next() has been printed System.out.print(printItr.next().toString() + (printItr.hasNext()? ", " : "") ); System.out.println(); } public static void main(String[] args){ String[] names = new String[]{"hans","peter","lise","joakim","olga","lene"}; OOPIterator nameItr = new ArrayIterator(names); print("initial collection", nameItr); print("initial collection again", nameItr); FilterIterator fi = new FilterIterator(nameItr.cloneMe()){ public boolean condition(Object o){ String s = (String)o; return s.length()>4; }}; print("filtered elements",fi); OddFilter odds = new OddFilter(nameItr.cloneMe()); print("odd elements", odds); EvenFilter evens = new EvenFilter(nameItr.cloneMe()); print("even elements", evens); odds = new OddFilter(nameItr.cloneMe()); evens = new EvenFilter(nameItr.cloneMe()); AlternateMerge am = new AlternateMerge(evens,odds); print("merged",am); odds = new OddFilter(nameItr.cloneMe()); evens = new EvenFilter(nameItr.cloneMe()); CompareMerge cm = new CompareMerge(evens,odds); print("compare merged",cm); print("sorted",new SortingIterator(nameItr.cloneMe()) ); } }