真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在java項目中使用迭代器-創(chuàng)新互聯(lián)

如何在java項目中使用迭代器?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)龍海,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

 迭代器模式將一個集合給封裝起來,主要是為用戶提供了一種遍歷其內(nèi)部元素的方式。迭代器模式有兩個優(yōu)點:①提供給用戶一個遍歷的方式,而沒有暴露其內(nèi)部實現(xiàn)細節(jié);②把元素之間游走的責(zé)任交給迭代器,而不是聚合對象,實現(xiàn)了用戶與聚合對象之間的解耦。

      迭代器模式主要是通過Iterator接口來管理一個聚合對象的,而用戶使用的時候只需要拿到一個Iterator類型的對象即可完成對該聚合對象的遍歷。這里的聚合對象一般是指ArrayList,LinkedList和底層實現(xiàn)為數(shù)組等擁有一組相同或相似特性的對象。通過迭代器模式對聚合對象的遍歷主要是通過Iterator接口的next(),hasNext()方法進行的,這里next()方法將返回當(dāng)前遍歷點的元素值,而hasNext()方法則表征當(dāng)前遍歷點之后還有沒有元素。Iterator接口中還有一個remove()方法,該方法將移除當(dāng)前遍歷點的元素。在一般情況下不需要使用該方法,一些特殊的情況可以調(diào)用該方法,如果當(dāng)前聚合對象的遍歷不支持該操作,那么可以在該方法中跑出UnSupportedOperationException。

      這里我們以如下例子來對迭代器模式進行說明。現(xiàn)有兩個餐廳的兩套菜單,一套菜單是使用數(shù)組實現(xiàn)的,而另外一套菜單是使用ArrayList實現(xiàn)的?,F(xiàn)在由于兩個餐廳的合并而需要將兩套菜單進行整合,由于雙方的廚師都已經(jīng)習(xí)慣了各自的菜單組裝方式,因而都希望各自繼續(xù)維護各自的菜單樣式。但是,對于服務(wù)員來說,其為顧客提供菜單的時候則必須根據(jù)兩套菜單進行兩種不同方式的處理,這必然會增加服務(wù)員的工作難度,而且,如果后期有新的餐廳合并進來,比如其使用的菜單種類為HashMap,那么服務(wù)員將又會維護這一套菜單,這也不利于擴展。根據(jù)服務(wù)員的需求,其需要的是一個菜單列表,如果其面向的是各個不同的菜單類,那么勢必會增加其工作難度,并且各個不同的菜單類中所提供的方法也不一定是服務(wù)員所需要的,因而,根據(jù)服務(wù)員的需求,這里需要制定一個菜單的規(guī)范,以實現(xiàn)服務(wù)員能夠按照同一種方式對其進行遍歷。這里就可以使用到迭代器模式,服務(wù)員只需要面向迭代器接口進行遍歷,而各個廚師所擁有的菜單只需要實現(xiàn)該迭代器即可,其依然可以按照各自的方式維護其菜單項。這樣就實現(xiàn)了不同的菜單與服務(wù)員的解耦。以下是使用迭代器模式解決該問題的具體代碼。

菜單接口(主要包含創(chuàng)建迭代器的方法):

public interface Menu {
  Iterator createIterator();
}

網(wǎng)站欄目:如何在java項目中使用迭代器-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://weahome.cn/article/cooipj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部