迭代器形式:提供一種辦法次第來訪問一個聚合對象中的元素,并且不暴露該對象的內部表示。當我們需求去遍歷一個對象時就能夠思索運用迭代器形式。
匯集籠統(tǒng)類
publicinterfaceCollection{
IteratorcreateIterator();
}
詳細匯集類。
復制代碼
publicclassConcreteCollectionimplementsCollection{
privateListlist=newArrayList<>();
@Override
publicIteratorcreateIterator(){
returnnewConcreteIterator(this);
}
//獲取匯合大小
publicintcount(){
returnlist.size();
}
//添加元素
publicvoidsetList(Objectobject){
list.add(object);
}
//獲取元素
publicObjectgetList(intindex){
returnlist.get(index);
}
}
復制代碼
迭代籠統(tǒng)類。
復制代碼
publicinterfaceIterator{
//第一個節(jié)點
Objectfirst();
//下一個節(jié)點
Objectnext();
//能否遍歷完成
BooleanisDone();
//當前節(jié)點
ObjectcurrentItem();
}
復制代碼
詳細迭代類。
復制代碼
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);
}
}
復制代碼
測試類。
復制代碼
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 (售后服務熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務專線/ 400-966-8830
旗下運營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號