設計模式 Iterator理解

2021-08-02 20:21:37 字數 2571 閱讀 5693

為了更好的理解iterator,也就是迭代器,借用arraylist和linkedlist,來更好解釋了iterator的作用

package designmode.iterator;

/** *

* @description 定義集合方法介面

* @author ccq

* @date 2023年6月20日 下午9:52:30

* */

public inte***ce collection

package designmode.iterator;

/** *

* @description 用來遍歷介面

* @author ccq

* @date 2023年6月20日 下午9:53:03

* */

public inte***ce iterator

package designmode.iterator;

/** *

* @description 模擬arraylist實現

* @author ccq

* @date 2023年6月20日 下午8:57:15

* */

public class arraylist implements collection

objects[index] = o;

index++;

} /**

* 返回list的長度

*/public int size()

/*** 提供iterator方法,進行遍歷

*/public iterator iterator()

//內部類,實現iterator介面,提供hasnext和next方法

public class arraylistiterator implements iterator

@override

public object next()

}}

package designmode.iterator;

/** *

* @description 定義乙個結點

* @author ccq

* @date 2023年6月20日 下午9:54:54

* */

public class node

public object getdata()

public void setdata(object data)

public node getnext()

public void setnext(node next)

private object data;

private node next;

}

package designmode.iterator;

/** *

* @description

* @author ccq

* @date 2023年6月20日 下午8:57:08

* */

public class linkedlist implements collection

tail.setnext(node);

tail = node;

size++;

}public int size()

@override

public iterator iterator()

//內部類,實現iterator

public class linkedlistiterator implements iterator

@override

public object next()

}}

package designmode.iterator;

/** *

* @description 測試類

* @author ccq

* @date 2023年6月20日 下午9:55:11

* */

public class test

system.out.println("arraylist長度:"+list.size());

//使用iterator遍歷

iterator iterator = list.iterator();

while(iterator.hasnext())

system.out.println();

collection list2 = new linkedlist();

for (int i = 0; i < 15; i++)

system.out.println("linkedlist長度:"+list2.size());

//使用iterator遍歷

iterator iterator2 = list2.iterator();

while(iterator2.hasnext())

}}

設計模式 Iterator模式

迭代器模式,主要用於容器裡面元素的遍歷,其他地方用到的不多,這裡舉個例項,模仿jdk裡面迭代器的實現,當然我這裡並沒有把iterator方法抽象到iterable這個介面中,依據介面的設計原則,不要做乙個面面俱到的介面,而應該讓特定的介面完成特定的功能 以下是 示例,使用了之後,我們在測試 中,僅僅...

設計模式 迭代模式Iterator

提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。1 訪問乙個聚合的物件,而不需要暴露物件的內部表示 2 支援對聚合物件的多種遍歷 3 對遍歷不同的物件,提供統一的介面。iterator 定義訪問的介面 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式 author xing...

設計模式之迭代模式(Iterator)

意圖 提供一種順序訪問乙個聚合物件中各個元素,而不需要暴露聚合物件內部行為。即將列表的訪問和遍歷從列表物件中分離出來,放入迭代器物件中。使遍歷和列表物件介面。可產生乙個列表物件可以復用多個迭代器 多種遍歷方式 乙個迭代器支援多個列表物件 多個列表物件由相同遍歷演算法,或者列表物件本身提供演算法差異部...