在java中集合中迭代是怎么一回事兒?
其實嚴格來說,迭代是一種設計模式,迭代的目的是遍歷某一類數據集合的內容,而無需了解該類數據的數據結構。
其實現思路是:定義一個迭代器接口,該接口至少聲明兩個方法,分別是:hasNext(),和next()。通過hasNext()判斷是否還有可遍歷元素,通過next()返回可遍歷元素。至于具體實現則根據不同需求創建不同實現類即可。
也就是說,迭代本沒有編程語言屬性,只不過幾乎所有的編程語言都會支持迭代罷了。
在Java中遍歷集合可以不用迭代方式,當然,不用迭代方式的遍歷僅限于List接口的實現類。因為List接口規定可以通過集合索引來取得對應的值,不論這個List用的是數組還是鏈表實現。
但是,Java中的集合不僅僅只有List,還有Set。像這種非List集合是無法通過索引來獲取指定元素的,所以這時候迭代方式就排上了用場。
除了List和Set之外,Java還有一種雙列集合,又稱key-value鍵值對集合。只不過這種集合遍歷時無法直接通過迭代方式遍歷。而是通過折中方式,要么先獲得key值集合,通過遍歷key來遍歷map,要么是獲得Map.Entry的集合來遍歷。
總之,迭代方式不屬于任何編程語言,它只是一種設計思想,只不過大多數編程語言會去實現它罷了,包括Java。