生活随笔
收集整理的這篇文章主要介紹了
迭代子模式(Iterator)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
???????? 顧名思義,迭代器模式就是順序訪問聚集中的對象,一般來說,集合中非常常見,如果對集合類比較熟悉的話,理解本模式會十分輕松。這句話包含兩層意思:一是需要遍歷的對象,即聚集對象,二是迭代器對象,用于對聚集對象進行遍歷訪問。我們看下關系圖:
??????
????
public interface Collection { public Iterator iterator(); /*取得集合元素*/ public Object get(int i); /*取得集合大小*/ public int size();
}
?
public?interface?Iterator?{?? ????//前移?? ????public?Object?previous();?? ?????? ????//后移?? ????public?Object?next();?? ????public?boolean?hasNext();?? ?????? ????//取得第一個元素?? ????public?Object?first();?? }??
?
public?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;?? ????}?? }??
?
public?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);?? ????}?? ?? }??
?
?
public?class?Test?{?? ?? ????public?static?void?main(String[]?args)?{?? ????????Collection?collection?=?new?MyCollection();?? ????????Iterator?it?=?collection.iterator();?? ?????????? ????????while(it.hasNext()){?? ????????????System.out.println(it.next());?? ????????}?? ????}?? }??
?
?
總結
以上是生活随笔為你收集整理的迭代子模式(Iterator)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。