叠代器模式(think in java中的設計模式)
阿新 • • 發佈:2017-06-23
一個 div 封裝 imp 叠代器 方法 println rri 數字
叠代器模式:用來叠代一個容器集合數組的一種模式。可能大家很多時候是用for循環進行叠代的,但是實際上for循環內部不能使用remove方法,但是叠代器可以,這是因為叠代器內部進行了該方法的邏輯處理。同樣我們也可以用到叠代器模式去叠代,他很好的封裝了叠代方法。我們還可以從中進行一些特特異的叠代選取功能,比如叠代數字的字符串但是返回尾數為13579的數字for循環內部的東西可以封裝在叠代器中。代碼如下
public class Test2 { @Test public void t() { CollectionA ca=new CollectionA(); String[] s={"我","了","個","去"}; ca.buildCollectionA(s); while(ca.hasNext()){ System.out.println(ca.next()); } } } //叠代器接口 interface Iterator{ //如果有下一個就表示為true,如果沒有下一個就表示為false public boolean hasNext(); //取得當前叠代值並且把叠代標記推送到下一個上 public Object next(); } //叠代器 class CollectionA implementsIterator { //當前下標標記 private int i=0; //叠代的內容 private String[] obj; public void buildCollectionA(String[] s){ this.obj=s; } @Override public boolean hasNext() { if(i>=obj.length){ return false; } return true; } @Overridepublic Object next() { if(hasNext()){ return obj[i++]; } return null; } }
叠代器模式(think in java中的設計模式)