我是靠谱客的博主 正直哈密瓜,最近开发中收集的这篇文章主要介绍Java设计模式:迭代器模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


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设计模式:迭代器模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部