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