首页 > 代码库 > 设计模式之Iterator
设计模式之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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。