我所認識的迭代器模式

2021-08-28 17:37:43 字數 1049 閱讀 1584

接下來我要說的無可厚非就是bookshelfiterator了這篇文章目的就是講解迭代器思想,所以此類的建立和呼叫才是最關鍵的。???

可以這麼說吧!bookshelfiterator就是書架的專屬迭代器。我剛才說了iterator介面的作用是使他的子類據有遍歷集合的功能。我們讓bookshelfiterator實現了iterator,並實現了hasnext()和next()方法。那麼bookshelfiterator具有了遍歷集合的功能,對於我們當前的需求就是遍歷bookshelf的books陣列,從而方便我們管理書架上的書。

那麼我們看一下他的屬性。

hasnext我覺得沒有什麼好說的,但是對於next方法一定要看清是先返回的當前index對應的book,然後將指標(index)後移。

那麼接下來我們在main方法裡進行測試–**我就不放上了,剛開始寫部落格不是很熟練。

關鍵東西就是這個:

iterator it = bookshelf.iterator();

while( it.hasnext())

system.out.println( (book)it.next().getname());

我們將以上**分成三部分來說

其實在我們使用迭代器的時候,hasnext和next應該連起來解釋:hasnext先問這個index指向的是空嗎?不是空,指標指向的還是元素–>進迴圈將next方法將這個index給出去,index指向下乙個,------到你了?hasnext接著問---->hasnext…問…index…

現在我才算是大概說完了迭代器怎麼回事,最重要的在我理解迭代器無非就是乙個工具,由於它的存在,我們不用親自操作遍歷集合,並且迭代器提供了hasnext和next方法,比我們自己操作還要更加的方便。有了迭代器我們對於資料遍歷就並不依賴與資料存在的本身,而全靠操作迭代器,不去關係細節。

而且我們不難發現迭代器遍歷的時候,無論針對哪一種具體需求,迭代器要便利的時候,總是在集合「有跡可循」的時候,也就是說集合應該是有某種特定的順序來讓我們可以next(),不然我們是不能使用迭代器的.

我所認識的ELK Stack

聽說elk stack最近很火,於是我抱著試試看的態度去市場了解了一番,發現現在很多公司都在使用這個東西處理日誌,而且成為實時日誌處理領域的第一選擇,於是我就去官網認真的學習了一番。elk stack這個東西是 elasticsearch logstash kibana 三個開源軟體的組合,在實時資...

我所認識的HTML

html hypetext mark language 超文字標記語言。如果把乙個web應用比喻為人,那麼html就是人體的骨骼。對於html的學習,我覺得要有以下幾個方面的認識和理解 用途 背景 規範制定和維護組織 語言本身 語法,api 其他一些常見問題 相關鏈結 起初,用來語義化描述科學文件,...

我所認識的父親們

一次去探望來京打工的老鄉,在他租住的僅有三四十平方公尺的簡陋寓所裡正在拉家常時,一位眉目慈善的中年男人熱情地跟我們打著招呼進來了,老鄉介紹說這是住在他隔壁的房客。隨即男人便坐下來和我們聊了起來。在閒聊中得知男人今年已經五十歲了,是南方人,也是在北京打工。我好奇地問他已是知天命的年紀了,為何還要在離家...