迭代器設計模式

2021-08-19 11:13:17 字數 906 閱讀 9422

1.迭代器設計模式

inte***ce myiterator//定義乙個介面

inte***ce myiterable

class myarraylist1implements myiterable

public myarraylist1(int initialcapacity)

catch (exception e)

} elementdata = (item)new object[initialcapacity]; //沒有泛型陣列,所以這裡使用強制轉換 }

//增加元素

public void add(item obj)

private class arraylistiterator implements myiterator//item型別

@override

public item next()

@override

public void remove()

}}

class myitrabletest

}}

1、通過arraylist.iterator()返回了乙個myiterator(迭代器)物件,該迭代器物件實現了三個方法hasnext(),next(),remove(),通過三個方法來對容器進行遍歷。

2.注意iterable和iterator中使用的泛型item,使用泛型因為返回的next()的值是item型別,該型別就是集合中元素的型別。

3.自己對迭代器模式的理解:

其實迭代器模式,本質就是使用內部類對外部類的屬性進行訪問,定義的乙個內部類的例項——迭代器(myiterator it),然後利用內部類可以訪問外部類屬性的特徵來對外部類的成員進行操作(遍歷).

參考:

設計模式 迭代器模式

迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...

設計模式 迭代器模式

iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...

設計模式 迭代器模式

迭代器模式在我們日常程式設計中使用非常頻繁,像list map 陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。在迭代器模式結構圖中包含如下幾個角色 它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。...