色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

java設計模式--迭代器模式

時間:2023-05-17

迭代器形式:提供一種辦法次第來訪問一個聚合對象中的元素,并且不暴露該對象的內部表示。當我們需求去遍歷一個對象時就能夠思索運用迭代器形式。
匯集籠統(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();
}
}
}

文章標簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號

與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
ciya68