欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Iterator接口

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

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

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

在這里插入圖片描述

增強for循環(huán)

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

舉個栗子:

package cn.edu.chd.exer4;

import java.util.ArrayList;

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

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

    }
}

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

在這里插入圖片描述

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

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

相關(guān)文章

  • SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    本文主要給大家介紹如何實現(xiàn)子線程中的traceId日志跟蹤,本文通過封裝Callable為例給大家介紹的非常詳細,需要的朋友一起看看吧
    2021-05-05
  • Spring整合Mybatis使用<context:property-placeholder>時的坑

    Spring整合Mybatis使用<context:property-placeholder>時的坑

    這篇文章主要介紹了Spring整合Mybatis使用<context:property-placeholder>時的坑 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • java實現(xiàn)簡單發(fā)送郵件功能

    java實現(xiàn)簡單發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單發(fā)送郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 深入理解Java之HashMap源碼剖析

    深入理解Java之HashMap源碼剖析

    這篇文章主要介紹了深入理解Java之HashMap源碼剖析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 在Spring Boot中使用Spark Streaming進行實時數(shù)據(jù)處理和流式計算的步驟

    在Spring Boot中使用Spark Streaming進行實時數(shù)據(jù)處理和流式計算的步驟

    這篇文章主要介紹了在Spring Boot中使用Spark Streaming進行實時數(shù)據(jù)處理和流式計算,通過本文的介紹,我們了解了在Spring Boot中使用Spark Streaming進行實時數(shù)據(jù)處理和流式計算的詳細步驟,需要的朋友可以參考下
    2024-03-03
  • Java遠程debug調(diào)試的操作步驟

    Java遠程debug調(diào)試的操作步驟

    日常項目中,通常我們的代碼都是部署到遠程的服務(wù)器,有時線上出現(xiàn)了問題,經(jīng)常需要我們增加一些日志來排查問題,但是如果是測試環(huán)境的場景下或者我們能進行遠程調(diào)試的話,我們就可以使用遠程的Debug方式進行遠程調(diào)試,下面給大家介紹一下Java遠程debug調(diào)試的操作步驟
    2025-04-04
  • SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布(示例代碼)

    SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布(示例代碼)

    這篇文章主要介紹了SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • java-for循環(huán)問題

    java-for循環(huán)問題

    這篇文章主要介紹了java-for循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • spring boot打包成war包的頁面如何存放

    spring boot打包成war包的頁面如何存放

    這篇文章主要介紹了spring boot打包成war包的頁面該放到哪里,很多朋友對這個問題都很疑惑,今天小編給大家分享一篇教程,需要的朋友可以參考下
    2019-11-11
  • rocketmq消費負(fù)載均衡--push消費詳解

    rocketmq消費負(fù)載均衡--push消費詳解

    這篇文章主要介紹了rocketmq消費負(fù)載均衡--push消費詳解,本文介紹了DefaultMQPushConsumerImpl消費者,客戶端負(fù)載均衡相關(guān)知識點。,需要的朋友可以參考下
    2019-06-06

最新評論