迭代器形式:提供一種辦法次第來訪問一個(gè)聚合對(duì)象中的元素,并且不暴露該對(duì)象的內(nèi)部表示。當(dāng)我們需求去遍歷一個(gè)對(duì)象時(shí)就能夠思索運(yùn)用迭代器形式。
匯集籠統(tǒng)類
publicinterfaceCollection{
IteratorcreateIterator();
}
詳細(xì)匯集類。
復(fù)制代碼
publicclassConcreteCollectionimplementsCollection{
privateListlist=newArrayList<>();
@Override
publicIteratorcreateIterator(){
returnnewConcreteIterator(this);
}
//獲取匯合大小
publicintcount(){
returnlist.size();
}
//添加元素
publicvoidsetList(Objectobject){
list.add(object);
}
//獲取元素
publicObjectgetList(intindex){
returnlist.get(index);
}
}
復(fù)制代碼
迭代籠統(tǒng)類。
復(fù)制代碼
publicinterfaceIterator{
//第一個(gè)節(jié)點(diǎn)
Objectfirst();
//下一個(gè)節(jié)點(diǎn)
Objectnext();
//能否遍歷完成
BooleanisDone();
//當(dāng)前節(jié)點(diǎn)
ObjectcurrentItem();
}
復(fù)制代碼
詳細(xì)迭代類。
復(fù)制代碼
publicclassConcreteIteratorimplementsIterator{
privateConcreteCollectionconcreteCollection;
privateintcurrent=0;
publicConcreteIterator(ConcreteCollectionconcreteCollection){
this.concreteCollection=concreteCollection;
}
@Override
publicObjectfirst(){
returnconcreteCollection.getList(0);
}
@Override
publicObjectnext(){
current++;
if(current<concreteCollection.count()){
returnconcreteCollection.getList(current);
}else{
returnnull;
}
}
@Override
publicBooleanisDone(){
returncurrent>=concreteCollection.count()?true:false;
}
@Override
publicObjectcurrentItem(){
returnconcreteCollection.getList(current);
}
}
復(fù)制代碼
測(cè)試類。
復(fù)制代碼
publicclassTest{
publicstaticvoidmain(String[]args){
ConcreteCollectionconcreteCollection=newConcreteCollection();
concreteCollection.setList(“a”);
concreteCollection.setList(“b”);
concreteCollection.setList(“c”);
concreteCollection.setList(“d”);
ConcreteIteratorconcreteIterator=newConcreteIterator(concreteCollection);
Objectfirst=concreteIterator.first();
while(!concreteIterator.isDone()){
System.out.println(concreteIterator.currentItem());
concreteIterator.next();
}
}
}
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)