package Iterator_pattern;
import java.util.ArrayList;
public interface Aggregate {
int getlength();
Object getvalue(int index);
public Iterator creiterotor();
}
package Iterator_pattern;
import java.util.ArrayList;
public interface Iterator {
public boolean isnext( );
public Object next();
}
package Iterator_pattern;
import java.util.ArrayList;
import java.util.Iterator;
public class ConcreteAggregate implements Aggregate{
public ArrayList<String> list;
public ConcreteAggregate(ArrayList<String> list) {
this.list = list;
}
void add(String s){
list.add(s);
}
@Override
public Iterator_pattern.Iterator creiterotor() {
// TODO Auto-generated method stub
return new ConcreteIterator(this);
}
@Override
public int getlength() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getvalue(int index) {
// TODO Auto-generated method stub
return list .get(index);
}
}
package Iterator_pattern;
import java.util.ArrayList;
public class ConcreteIterator implements Iterator{
private Aggregate ag;
public ConcreteIterator(Aggregate ag){
this.ag = ag;
}
private static int Currindex = 1;
@Override
public boolean isnext() {
// TODO Auto-generated method stub
if(Currindex<ag.getlength()){
return true;
}
return false;
}
@Override
public Object next() {
// TODO Auto-generated method stub
if(isnext()){
return ag.getvalue(Currindex++);
}
else
return null;
}
}
package Iterator_pattern;
import java.util.ArrayList;
public class App {
public static void main(String args[]){
ConcreteAggregate ca = new ConcreteAggregate(new ArrayList<String>());
ca.list.add("a");
ca.list.add("b");
ca.list.add("c");
ca.list.add("d");
ca.list.add("e");
ca.list.add("f");
Iterator it = ca.creiterotor();
System.out.println(it.isnext());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
}
}
