java中map用法 在java中集合中迭代是怎么一回事兒?為什么要進(jìn)行集合的迭代?
在java中集合中迭代是怎么一回事兒?為什么要進(jìn)行集合的迭代?事實上,嚴(yán)格地說,迭代是一種設(shè)計模式。迭代的目的是遍歷某一類型數(shù)據(jù)集的內(nèi)容,而不知道該類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。實現(xiàn)思想是定義一個迭代器接口,它
在java中集合中迭代是怎么一回事兒?為什么要進(jìn)行集合的迭代?
事實上,嚴(yán)格地說,迭代是一種設(shè)計模式。迭代的目的是遍歷某一類型數(shù)據(jù)集的內(nèi)容,而不知道該類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
實現(xiàn)思想是定義一個迭代器接口,它至少聲明兩個方法:hasnext()和next()。通過hasnext()判斷是否有遍歷元素,并通過next()返回遍歷元素。對于具體的實現(xiàn),我們可以根據(jù)不同的需求創(chuàng)建不同的實現(xiàn)類。
換句話說,迭代沒有編程語言屬性,但幾乎所有編程語言都支持迭代。
在Java中,無需迭代即可遍歷集合。當(dāng)然,無需迭代的遍歷僅限于list接口的實現(xiàn)類。因為列表接口指定了可以通過集合索引獲得相應(yīng)的值,所以無論列表是通過數(shù)組實現(xiàn)還是通過鏈表實現(xiàn)。
但是,Java中的集合不僅是列表,而且是集合。這種非列表集合不能通過索引獲得指定的元素,因此使用迭代方法。
除了list和set之外,Java還有一個雙列集合,也稱為鍵值對集合。但是,這種集合遍歷不能直接迭代。相反,我們使用折衷方法,要么先獲取鍵值集,要么通過遍歷鍵值遍歷映射,要么獲取鍵值集地圖輸入橫穿。
總之,迭代法不屬于任何編程語言,它只是一種設(shè)計思想,但大多數(shù)編程語言都會實現(xiàn)它,包括Java。