久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

4. 迭代器模式

 黎可圖書(shū)館 2013-09-02
一. 概念
迭代子模式:迭代子模式可以順序訪問(wèn)一個(gè)聚集中的元素而不必暴露聚集的內(nèi)部表象,。多個(gè)對(duì)象聚在一起形成的總體稱之為聚集,,聚集對(duì)象是能夠包容一組對(duì)象的容器對(duì)象,。迭代子模式將迭代邏輯封裝到一個(gè)獨(dú)立的子對(duì)象中,從而與聚集本身隔開(kāi),。迭代子模式簡(jiǎn)化了聚集的界面,。每一個(gè)聚集對(duì)象都可以有一個(gè)或一個(gè)以上的迭代子對(duì)象,每一個(gè)迭代子的迭代狀態(tài)可以是彼此獨(dú)立的,。迭代算法可以獨(dú)立于聚集角色變化,。

二. 實(shí)現(xiàn)
視屏是一如既往的簡(jiǎn)單,一個(gè)小時(shí)的視屏講了兩三個(gè)模式,,所以我又把那兩本書(shū)相關(guān)內(nèi)容看了一遍,。
了解過(guò)后發(fā)現(xiàn)Iterator模式雖然很重要,但是已經(jīng)不大用了,,因?yàn)闊o(wú)論C#還是Java已經(jīng)把它封裝的很好了,,所以我這里就只實(shí)現(xiàn)了很簡(jiǎn)單的功能。
也就是用Iterator模式實(shí)現(xiàn)集合的遍歷,。
Test.java
public class Test {
public static void main(String[] args) {
CollectionDemo collection = new ArrayListCollection();
for(int i=0; i<10; i++){
collection.add(i);
}
System.out.println(collection.size());
IteratorDemo iterator = collection.getIterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
依然從測(cè)試類開(kāi)始,,這里新建了一個(gè)集合,在插入十個(gè)值后獲取它的長(zhǎng)度并遍歷,。

CollectionDemo.java
public interface CollectionDemo {
public void add(Object obj);
public void remove(Object obj);
public IteratorDemo getIterator();
public int size();
}
這個(gè)類是集合類的接口,。

ArrayListCollection.java
public class ArrayListCollection implements CollectionDemo {
private Object[] objects = new Object[15];
int index = 0;
@Override
public void add(Object obj) {
objects[index] = obj;
index++;
}

@Override
public void remove(Object obj) {
for(int i=0; i< objects.length; i++){
if(objects.equals(obj)){
objects[i] = null;
}
}
}
@Override
public int size() {
return index;
}

@Override
public IteratorDemo getIterator() {
return new ArrayIterator();
}
private class ArrayIterator implements IteratorDemo{
int i=-1;
@Override
public boolean hasNext() {
if(objects[i+1] != null){
i++;
return true;
}
return false;
}

@Override
public Object next() {
Object result = objects[i];
return result;
}
}

}
這個(gè)類實(shí)現(xiàn)了接口,里面有一個(gè)內(nèi)部類,,那個(gè)內(nèi)部類就是迭代類。

IteratorDemo.java
public interface IteratorDemo {
public boolean hasNext();
public Object next();
}
這個(gè)類是迭代類的接口,。

三. 總結(jié)
由于這個(gè)模式并不十分重要,,也不是十分難,所以沒(méi)什么好總結(jié)的,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多