輕松掌握J(rèn)ava迭代器模式
定義:用于順序訪問集合對象的元素,不需要知道集合對象的底層表示。
特點:
1、它支持以不同的方式遍歷一個聚合對象。
2、迭代器簡化了聚合類。
3、在同一個聚合上可以有多個遍歷。
4、在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有代碼。
企業(yè)級開發(fā)和常用框架中的應(yīng)用:java集合都實現(xiàn)了迭代器
具體實例:
public class Demo { public static void main(String[] args) { ActualContainer container = new ActualContainer(); for(int i = 5 ; i < 20 ; i++){ container.add(i); } Iterator iterator = container.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } /** * 迭代器接口,包含有常用的迭代器方法 */ interface Iterator{ public boolean hasNext(); public Object next(); } /** * 容器接口:包含有獲取迭代器的方法 */ interface Container{ public Iterator iterator(); } /** * 具體實現(xiàn)類 * @author jiaoyuyu * */ class ActualContainer implements Container{ private List<Object> list = new ArrayList<>(); public void add(Object obj){ this.list.add(obj); } public void remove(Object obj){ this.list.remove(obj); } public Object get(int index){ if(index <= (this.list.size() - 1)){ return this.list.get(index); } return null; } public Iterator iterator() { return new ActualIterator(); } private class ActualIterator implements Iterator{ private int pointer = 0; public boolean hasNext() { return this.pointer < list.size() ? true : false; } public Object next() { if(this.pointer < list.size()){ Object obj = list.get(pointer); pointer++; return obj; } return null; } } }
迭代器模式屬于比較簡單的模式,主要用于遍歷集合一類的對象。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中實現(xiàn)定時任務(wù)的4種方式詳解
這篇文章主要介紹了SpringBoot中實現(xiàn)定時任務(wù)的4種方式詳解,在Springboot中定時任務(wù)是一項經(jīng)常能用到的功能,實現(xiàn)定時任務(wù)的方式有很多,今天來介紹常用的幾種,需要的朋友可以參考下2023-11-11Spring+SpringMVC+JDBC實現(xiàn)登錄的示例(附源碼)
這篇文章主要介紹了Spring+SpringMVC+JDBC實現(xiàn)登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Java使用正則表達(dá)式(regex)匹配中文實例代碼
本文給大家分享java使用正則表達(dá)式匹配中文的實例代碼,以及java中要匹配中文的正則表達(dá)式兩種寫法,感興趣的朋友通過本文一起看看吧2016-12-12java圖的深度優(yōu)先遍歷實現(xiàn)隨機(jī)生成迷宮
這篇文章主要為大家詳細(xì)介紹了java圖的深度優(yōu)先遍歷實現(xiàn)隨機(jī)生成迷宮,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Java編程實現(xiàn)數(shù)組轉(zhuǎn)成list及l(fā)ist轉(zhuǎn)數(shù)組的方法
這篇文章主要介紹了Java編程實現(xiàn)數(shù)組轉(zhuǎn)成list及l(fā)ist轉(zhuǎn)數(shù)組的方法,結(jié)合實例形式較為詳細(xì)的總結(jié)分析了java實現(xiàn)數(shù)組與list之間相互轉(zhuǎn)換的操作技巧,需要的朋友可以參考下2017-09-09微服務(wù)Redis-Session共享登錄狀態(tài)的過程詳解
這篇文章主要介紹了微服務(wù)Redis-Session共享登錄狀態(tài),本文采取Spring security做登錄校驗,用redis做session共享,實現(xiàn)單服務(wù)登錄可靠性,微服務(wù)之間調(diào)用的可靠性與通用性,需要的朋友可以參考下2023-12-12spring boot 實現(xiàn)Minio分片上傳的步驟
分片上傳,就是將所要上傳的文件,按照一定的大小,將整個文件分隔成多個數(shù)據(jù)塊來進(jìn)行分別上傳,上傳完之后再由服務(wù)端對所有上傳的文件進(jìn)行匯總整合成原始的文件,本文給大家介紹spring boot 實現(xiàn)Minio分片上傳的步驟,感興趣的朋友跟隨小編一起看看吧2023-10-10servlet監(jiān)聽實現(xiàn)統(tǒng)計在線人數(shù)功能 附源碼下載
這篇文章主要為大家詳細(xì)介紹了servlet監(jiān)聽統(tǒng)計在線人數(shù)的實現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04