最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java集合中的Iterator迭代器接口詳解

 更新時(shí)間:2023年11月29日 10:12:42   作者:時(shí)代&信念  
這篇文章主要介紹了Java集合中的Iterator迭代器接口詳解,Iterator,被稱為迭代器接口,本身并不提供存儲(chǔ)對(duì)象的能力,主要用于遍歷Collection中的元素,需要的朋友可以參考下

Iterator接口

  • 在程序開發(fā)中,經(jīng)常需要遍歷集合中的所有元素。針對(duì)這種需求,JDK專門提供了一個(gè)接口java.util.Iterator。
  • Iterator接口也是Java集合中的一員,但它與Collection、Map接口有所不同。
    • Collection接口與Map接口主要用于存儲(chǔ)元素
    • Iterator,被稱為迭代器接口,本身并不提供存儲(chǔ)對(duì)象的能力,主要用于遍歷Collection中的元素
  • Collection接口繼承了java.lang.Iterable接口,該接口有一個(gè)iterator()方法,那么所有實(shí)現(xiàn)了Collection接口的集合類都有一個(gè)iterator()方法,用以返回一個(gè)實(shí)現(xiàn)了Iterator接口的對(duì)象。
    • public Iterator iterator(): 獲取集合對(duì)應(yīng)的迭代器,用來(lái)遍歷集合中的元素的。
    • 集合對(duì)象每次調(diào)用iterator()方法都得到一個(gè)全新的迭代器對(duì)象,默認(rèn)游標(biāo)都在集合的第一個(gè)元素之前。
  • Iterator接口的常用方法如下:
    • public E next():返回迭代的下一個(gè)元素。
    • public boolean hasNext():如果仍有元素可以迭代,則返回 true。
  • 注意:在調(diào)用it.next()方法之前必須要調(diào)用it.hasNext()進(jìn)行檢測(cè)。若不調(diào)用,且下一條記錄無(wú)效,直接調(diào)用it.next()會(huì)拋出NoSuchElementException異常。

迭代器的執(zhí)行原理

Iterator迭代器對(duì)象在遍歷集合時(shí),內(nèi)部采用指針的方式來(lái)跟蹤集合中的元素,接下來(lái)通過(guò)一個(gè)圖例來(lái)演示Iterator對(duì)象迭代元素的過(guò)程:

在這里插入圖片描述

增強(qiáng)for循環(huán)

  • foreach循環(huán)(也稱增強(qiáng)for循環(huán))是 JDK5.0 中定義的一個(gè)高級(jí)for循環(huán),專門用來(lái)遍歷數(shù)組和集合的。
  • foreach循環(huán)的語(yǔ)法格式:
for(元素的數(shù)據(jù)類型 局部變量 : Collection集合或數(shù)組){ 
  	//操作局部變量的輸出操作
}
//這里局部變量就是一個(gè)臨時(shí)變量,自己命名就可以

舉個(gè)栗子:

package cn.edu.chd.exer4;

import java.util.ArrayList;

/**
 * ClassName:Main
 * Description:
 * 增強(qiáng)for循環(huán)的使用
 * @Create 2023/11/19 10:46
 */
public class Main {
    public static void main(String[] args) {
        //增強(qiáng)for循環(huán)的練習(xí)
        ArrayList<Integer> arrayList = new ArrayList<>();
        //基本數(shù)據(jù)類型進(jìn)行裝箱
        arrayList.add(5);
        arrayList.add(2);
        arrayList.add(0);
        arrayList.add(1);

        //使用增強(qiáng)for循環(huán)進(jìn)行遍歷
        for (Integer i: arrayList) {
            System.out.println(i);
        }

    }
}

對(duì)于集合的遍歷,增強(qiáng)for的內(nèi)部原理其實(shí)是個(gè)Iterator迭代器。如下圖。

在這里插入圖片描述

它用于遍歷Collection和數(shù)組。通常只進(jìn)行遍歷元素,不要在遍歷的過(guò)程中對(duì)集合元素進(jìn)行增刪操作。

到此這篇關(guān)于Java集合中的Iterator迭代器接口詳解的文章就介紹到這了,更多相關(guān)Iterator迭代器接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用poi-tl庫(kù)操作wold文檔的方法

    Java使用poi-tl庫(kù)操作wold文檔的方法

    java項(xiàng)目實(shí)際開發(fā)中經(jīng)常會(huì)遇到制作word表單且表格數(shù)據(jù)行循環(huán)功能,這篇文章主要介紹了Java使用poi-tl庫(kù)操作wold文檔的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-11-11
  • Springboot攔截filter中異常的處理

    Springboot攔截filter中異常的處理

    SpringBoot提供了全局異常處理機(jī)制可以攔截所有異常,包括Filter中的異常,本文主要介紹了Springboot攔截filter中異常的處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • MySqlConnector的使用教程

    MySqlConnector的使用教程

    本文詳細(xì)介紹了MySqlConnector的核心功能,包括數(shù)據(jù)變更捕獲、KafkaConnect兼容性、配置管理、版本信息、連接器任務(wù)創(chuàng)建、配置驗(yàn)證、數(shù)據(jù)庫(kù)連接建立和連接器配置創(chuàng)建等,感興趣的可以了解一下
    2024-10-10
  • JDK(免安裝)各種版本下載及配置詳細(xì)圖文教程

    JDK(免安裝)各種版本下載及配置詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于JDK(免安裝)各種版本下載及配置的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-07-07
  • Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解

    Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解

    這篇文章主要介紹了Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法,結(jié)合實(shí)例形式分析了java分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、跳轉(zhuǎn)語(yǔ)句等相關(guān)概念、原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Spring AOP AspectJ使用及配置過(guò)程解析

    Spring AOP AspectJ使用及配置過(guò)程解析

    這篇文章主要介紹了Spring AOP AspectJ使用及配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot框架實(shí)現(xiàn)支付和轉(zhuǎn)賬功能

    SpringBoot框架實(shí)現(xiàn)支付和轉(zhuǎn)賬功能

    在 Spring Boot 框架中實(shí)現(xiàn)支付和轉(zhuǎn)賬功能時(shí),涉及到多個(gè)細(xì)節(jié)和注意點(diǎn),這些功能通常需要高度的安全性、穩(wěn)定性和可擴(kuò)展性,本文介紹了實(shí)現(xiàn)支付和轉(zhuǎn)賬功能的一些關(guān)鍵點(diǎn),需要的朋友可以參考下
    2024-08-08
  • Java/Spring項(xiàng)目的包開頭為什么是com詳解

    Java/Spring項(xiàng)目的包開頭為什么是com詳解

    這篇文章主要介紹了Java/Spring項(xiàng)目的包開頭為什么是com的相關(guān)資料,在Java中包命名遵循域名反轉(zhuǎn)規(guī)則,即使用公司的域名反轉(zhuǎn)作為包的前綴,以確保其全球唯一性和避免命名沖突,這種規(guī)則有助于邏輯分層、代碼可讀性提升和標(biāo)識(shí)代碼來(lái)源,需要的朋友可以參考下
    2024-10-10
  • 如何解決@PutMapping或@PostMapping接收String類型參數(shù)多兩個(gè)“引號(hào)問(wèn)題

    如何解決@PutMapping或@PostMapping接收String類型參數(shù)多兩個(gè)“引號(hào)問(wèn)題

    這篇文章主要介紹了如何解決@PutMapping或@PostMapping接收String類型參數(shù)多兩個(gè)“引號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring?Aware接口示例代碼詳解

    Spring?Aware接口示例代碼詳解

    Spring的依賴注入的最大亮點(diǎn)是所有的Bean對(duì)Spring容器的存在是沒(méi)有意識(shí)的,我們可以將Spring容器換成其他的容器,Spring容器中的Bean的耦合度因此也是極低的,本文給大家介紹Spring?Aware接口示例代碼詳解,感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論

磴口县| 五莲县| 郁南县| 清苑县| 仙桃市| 瑞丽市| 荃湾区| 平邑县| 监利县| 开阳县| 鲁甸县| 英德市| 贵定县| 古浪县| 綦江县| 资中县| 安化县| 隆德县| 宜宾县| 贺州市| 阿荣旗| 武威市| 永顺县| 苏尼特右旗| 钟祥市| 平陆县| 巴楚县| 马山县| 吐鲁番市| 独山县| 青阳县| 甘德县| 岱山县| 中宁县| 沽源县| 新昌县| 蒲江县| 天祝| 洮南市| 文成县| 信丰县|