概念
- 定义:迭代器模式提供一种方法访问一种容器对象中的各个元素,而又不需要暴露该对象内部的细节
代码实现
public interface Iterator<E> {
E next();
boolean remove();
Boolean hasNext();
}
public class List2Iterator<E> implements Iterator {
private Vector<E> objects;
private int cursor = 0;
public List2Iterator(Vector objects) {
this.objects = objects;
}
@Override
public E next() {
E obj = objects.get(cursor);
cursor++;
return obj;
}
@Override
public boolean remove() {
if (cursor == 0) {
objects.remove(cursor);
} else {
cursor--;
objects.remove(cursor);
}
return true;
}
@Override
public Boolean hasNext() {
return cursor < objects.size();
}
}
public interface List2Interface<E> {
void add(E obj);
void remove(E obj);
List2Iterator iterator();
}
public class List2<E> implements List2Interface<E> {
private Vector<E> objects = new Vector<>();
@Override
public void add(E obj) {
objects.add(obj);
}
@Override
public void remove(E obj) {
objects.remove(obj);
}
@Override
public List2Iterator iterator() {
return new List2Iterator(objects);
}
}
public class Client {
public static void main(String[] args) {
List2<String> list2 = new List2();
list2.add("hahaha");
list2.add("xixi");
list2.add("huahua");
List2Iterator iterator = list2.iterator();
iterator.remove();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}