路一步步走>> 設計模式十六:Iterator-迭代器
阿新 • • 發佈:2018-12-08
package com.test.DPs.XingWei.Iterator; /** * 行為型:Iterator-迭代器 外觀:作用面為 物件 * * 用途:提供一種方法順序訪問一個聚合物件中各個元素,而又不需要暴露該物件的內部表示。 * 理解:一是需要遍歷的物件,即聚集物件, * 二是迭代器物件,用於對聚集物件進行遍歷訪問 */ interface Collection{ Iterator iterator(); Object get(int i); int size(); } interface Iterator{ Object previous(); Object next(); boolean hasNext(); Object first(); } class myCollection implements Collection{ public String string[] = {"A","B","C","D","E"}; @Override public Iterator iterator(){ return new myIterator(this); } @Override public Object get(int i) { return string[i]; } @Override public int size() { return string.length; } } class myIterator implements Iterator{ private Collection collection; private int pos = 1; public myIterator(Collection collection){ this.collection = collection; } @Override public Object previous(){ if(pos>0){ pos--; } return collection.get(pos); } @Override public Object next() { if(pos<collection.size()-1){ pos++; } return collection.get(pos); } @Override public boolean hasNext() { if(pos<collection.size()-1){ return true; }else{ return false; } } @Override public Object first() { pos = 0; return collection.get(pos); } }