標籤:內部類 迭代器 設計模式 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;@Overridepublic boolean hasNext() {return current < size;}@Overridepublic 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());}}
輸出結果
[email protected][email protected][email protected][email protected][email protected]
很簡單卻很使用的一個設計模式,但是前提是要把內部類瞭解一遍
設計模式之Iterator