概述
public interface AbstractIterator<E> {
public boolean hasNext();
public E next();
}
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractObjectList<E> {
protected List<E> list = new ArrayList<E>();
public AbstractObjectList() {
}
public AbstractObjectList(List list) {
this.list = list;
}
public void add(E e) {
this.list.add(e);
}
public E get(int index) {
return list.get(index);
}
public int size() {
return list.size();
}
public boolean isEmpty() {
return list.isEmpty();
}
public abstract AbstractIterator iterator();
}
import java.util.List;
/**
* 抽象对象列表的实现。
*
* @author zhangfly
*
*/
public class ObjectListImpl extends AbstractObjectList {
public ObjectListImpl() {
}
public ObjectListImpl(List list) {
super(list);
}
@Override
public AbstractIterator iterator() {
return new IteratorImpl(this);
}
}
/**
* 迭代器的实现。
*
* @author zhangfly
*
* @param <T>
*/
public class IteratorImpl<E> implements AbstractIterator {
private AbstractObjectList<E> list;
private int cursor = 0;
public IteratorImpl(AbstractObjectList list) {
this.list = list;
}
@Override
public boolean hasNext() {
if (list.isEmpty()) {
return false;
}
if (cursor < list.size()) {
return true;
}
return false;
}
@Override
public E next() {
E e = null;
if (cursor < list.size()) {
e = list.get(cursor);
cursor++;
}
return e;
}
}
public class Test {
public Test() {
ObjectListImpl listImpl = new ObjectListImpl();
// 添加三个不同类型的元素。
listImpl.add(new String("zhang"));
listImpl.add(new Exception("phil"));
listImpl.add(2019);
// 迭代器遍历。
AbstractIterator iterator = listImpl.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next().toString());
}
}
public static void main(String[] args) {
new Test();
}
}
输出:
zhang
java.lang.Exception: phil
2019
最后
以上就是正直哈密瓜为你收集整理的Java设计模式:迭代器模式的全部内容,希望文章能够帮你解决Java设计模式:迭代器模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复