码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之Iterator

时间:2014-09-16 22:09:01      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:内部类   迭代器   设计模式   iterator   

迭代器设计模式广泛用于集合中的遍历

这里主要用到了内部类

以下是简化的的一个迭代器的设计模式


1.Iterator接口

public interface Iterator<E> {
	boolean hasNext();
	E next();
}

2.内部类

public class Outer {
	private Object[] item;
	private int size = 0;
	
	
	public Outer(int n)  {
		if(n<=0){
			System.out.println("越界了");
		}
		item = new Object[n];
	}
	public void add(Object object){
		item[size++] = object;
	}
    public Iterator<Object> iterator(){
    	return new Iter();
    }
	public class Iter implements Iterator<Object>{
		int current = 0;
		@Override
		public boolean hasNext() {
			return current < size;
		}

		@Override
		public Object next() {
			if(current >= size){
				return null;
			}
			return item[current++];
		}
	}
    
}

3.测试

public static void main(String[] args){
		Outer outer = new Outer(10);
		outer.add(new Object());
		outer.add(new Object());
		outer.add(new Object());
		outer.add(new Object());
		outer.add(new Object());
		Iterator<Object> iterator = outer.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next().toString());
		}
	}

输出结果

java.lang.Object@6ea4b78b
java.lang.Object@51da6868
java.lang.Object@1d8806f7
java.lang.Object@189ddde9
java.lang.Object@1d1d2b8

很简单却很使用的一个设计模式,但是前提是要把内部类了解一遍

设计模式之Iterator

标签:内部类   迭代器   设计模式   iterator   

原文地址:http://blog.csdn.net/liu00614/article/details/39323739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!