设计模式之迭代器模式

基本思路

  1. Iterator接口中有两个方法
public interface Iterator {
	Object next();
	boolean hasNext();
}
  1. Collection接口
    定义一个返回类型为Iterator的方法
public interface collection {
	public void add(Object o);
	public int size();
	Iterator iterator();
}
  1. 以ArrayList为例
    继承Collection接口,并实现iterator方法。
    返回一个Iterator类型的对象
	// 返回的内容一定是实现了Iterator接口的类的对象,这个类具体是什么名字并不重要。
	public Iterator iterator() {
		return new ArrayListIterator();
	}

Iterator类型的对象,实现了Iterator的接口,并且重写相应的方法。

	public Iterator iterator() {
		return new ArrayListIterator();
	}

	// 使用内部类的形式实现,
	private class ArrayListIterator implements Iterator {

		private int current = 0;

		@Override
		public Object next() {
			// TODO Auto-generated method stub
			Object o = objects[current];
			current++;
			return o;
		}

		@Override
		public boolean hasNext() {
			// TODO Auto-generated method stub
			if (current >= index) {
				return false;
			} else {
				return true;
			}
		}

	}
posted @ 2018-09-09 10:51  小楼——夜听春雨  阅读(101)  评论(0编辑  收藏  举报