package study.org;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
Aggregate aggregate = new ConcreteAggregate();
aggregate.add("aaa");
aggregate.add("bbb");
aggregate.add("ccc");
Iterator iterator = aggregate.getIterator();
while (iterator.hashNext()) {
Object value = iterator.next();
System.out.println(value);
}
}
}
//抽象迭代器
interface Iterator {
Object next();
boolean hashNext();
}
class ConcreteIterator implements Iterator {
private List<String> list = null;
private int index = -1;
public ConcreteIterator(List<String> list2) {
this.list = list2;
}
@Override
public Object next() {
Object object = null;
if (this.hashNext()) {
object = list.get(++index);
}
return object;
}
@Override
public boolean hashNext() {
if (index < list.size() - 1) {
return true;
} else {
return false;
}
}
}
//抽象聚合类
interface Aggregate {
void add(String object);
void remove(String object);
Iterator getIterator();
}
class ConcreteAggregate implements Aggregate {
private List<String> list = new ArrayList<String>();
@Override
public void add(String object) {
list.add(object);
}
@Override
public void remove(String object) {
list.remove(object);
}
@Override
public Iterator getIterator() {
return new ConcreteIterator(list);
}
}
网友评论