Java Collection集合iterator方法解析
這篇文章主要介紹了Java Collection集合iterator方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
Iterator接口概述
/** * java.util.Iterator接口:選代器(對(duì)集合進(jìn)行遍歷) * 有兩個(gè)常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,則返回true。 * 即判斷集合中還有沒有下ー個(gè)元素,有就返回true,沒有就返回 false * E next() * 返回送代的下一個(gè)元素。 * 即取出集合中的下一個(gè)元素 * iterator迭代器,是一個(gè)接口,我們無(wú)法直接使用,需要使用Iterator接口的實(shí)現(xiàn)類對(duì)象。 * 獲取實(shí)現(xiàn)類的方式比較特殊Collection接口中有一個(gè)方法,叫iterator(),這個(gè)方法返回的就是送代器的實(shí)現(xiàn)類對(duì)象 * Iterator<E> iterator()返回在該collection集合的元素上進(jìn)行迭代的送代器。 * * 迭代器的使用步驟(重點(diǎn)): * 1.使用集合中的方法 iterator()獲取送代器的實(shí)現(xiàn)類對(duì)象,使用Iterator接口接收(多態(tài)) * 2.使用Iterator接口中的方法hasNext來(lái)判斷還有沒有下一個(gè)元素 * 3.使用Iterator接口中的方法next來(lái)取出集合中的下一個(gè)元素 */
迭代器代碼的實(shí)現(xiàn)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collection;
public class Demo01Iterator {
public static void main(String[] args) {
Collection <String> collection = new ArrayList<>();
collection.add("1號(hào)");
collection.add("2號(hào)");
collection.add("3號(hào)");
collection.add("4號(hào)");
collection.add("5號(hào)");
// 第一步:使用集合中的方法 iterator() 獲取送代器的實(shí)現(xiàn)類對(duì)象
// 第二步:使用Iterator接口接收(多態(tài))
Iterator<String> stringIterator = collection.iterator();
// 第三步:使用Iterator接口中的方法hasNext來(lái)判斷還有沒有下一個(gè)元素
while (stringIterator.hasNext()) {
// 第四步:使用Iterator接口中的方法next來(lái)取出集合中的下一個(gè)元素
System.out.println(
stringIterator.next()
);
}
}
}
輸出結(jié)果: 1號(hào) 2號(hào) 3號(hào) 4號(hào) 5號(hào)
迭代器的實(shí)現(xiàn)原理
new一個(gè)集合出來(lái)
collection = new ArrayList<>()
假設(shè)集合中添加有元素
collection = [一號(hào)元素, 二號(hào)元素, 三號(hào)元素, 四號(hào)元素, 五號(hào)元素]
集合中的元素對(duì)應(yīng)的索引
Index = [0, 1, 2, 3, 4]
調(diào)用iterator方法
collection.iterator()
作用:獲取迭代器的實(shí)現(xiàn)類對(duì)象井且會(huì)把指針(索引)指向集合的-1素引
代碼說明:
while (stringIterator.hasNext()) {
stringIterator.next()
}
通過Iterator接口的hasNext()方法,判斷集合是否還有沒有下一個(gè)元素
如果有下一個(gè)元素,那么就調(diào)用Iterator接口的next()方法,取出下一個(gè)元素,并且會(huì)把指針向后移一位。
就這樣,從索引的 -1 位置的下一位索引,開始獲取元素,直到獲取完全。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java TokenProcessor令牌校驗(yàn)工具類
這篇文章主要介紹了TokenProcessor令牌校驗(yàn)工具類 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
Java代碼實(shí)現(xiàn)酒店管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java代碼實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
idea使用帶provide修飾依賴導(dǎo)致ClassNotFound
程序打包到Linux上運(yùn)行時(shí),若Linux上也有這些依賴,為了在Linux上運(yùn)行時(shí)避免依賴沖突,可以使用provide修飾,本文主要介紹了idea使用帶provide修飾依賴導(dǎo)致ClassNotFound,下面就來(lái)介紹一下解決方法,感興趣的可以了解一下2024-01-01
SSM項(xiàng)目使用攔截器實(shí)現(xiàn)登錄驗(yàn)證功能
這篇文章主要介紹了在SSM項(xiàng)目中如何使用攔截器,實(shí)現(xiàn)登錄驗(yàn)證功能。文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的小伙伴可以了解一下2022-01-01
Java中String.split()的最詳細(xì)源碼解讀及注意事項(xiàng)
以前經(jīng)常使用String.split()方法,但是從來(lái)沒有注意,下面這篇文章主要給大家介紹了關(guān)于Java中String.split()最詳細(xì)源碼解讀及注意事項(xiàng)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了MyBatis SpringMVC整合實(shí)現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Spring使用@Retryable實(shí)現(xiàn)自動(dòng)重試機(jī)制
在微服務(wù)架構(gòu)中,服務(wù)之間的調(diào)用可能會(huì)因?yàn)橐恍簳r(shí)性的錯(cuò)誤而失敗,例如網(wǎng)絡(luò)波動(dòng)、數(shù)據(jù)庫(kù)連接超時(shí)或第三方服務(wù)不可用等,在本文中,我們將介紹如何在 Spring 中使用 @Retryable 實(shí)現(xiàn)自動(dòng)重試機(jī)制,需要的朋友可以參考下2025-01-01

