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

Java中Iterator(迭代器)的用法詳解

 更新時(shí)間:2023年05月09日 09:23:32   作者:無聲編碼器  
Java迭代器(Iterator)是?Java?集合框架中的一種機(jī)制,它提供了一種在不暴露集合內(nèi)部實(shí)現(xiàn)的情況下遍歷集合元素的方法。本文主要介紹了它的使用方法,希望對(duì)大家有所幫助

Java迭代器(Iterator)是 Java 集合框架中的一種機(jī)制,它提供了一種在不暴露集合內(nèi)部實(shí)現(xiàn)的情況下遍歷集合元素的方法。Java Iterator(迭代器)不是一個(gè)集合,它是一種用于訪問集合的方法,可用于迭代  ArrayList 和 HashSet 等集合。Iterator 是 Java 迭代器最簡(jiǎn)單的實(shí)現(xiàn),ListIterator 是 Collection API 中的接口, 它擴(kuò)展了 Iterator 接口。

迭代器 it 的三個(gè)基本操作是 next 、hasNext 和 remove。

  • 調(diào)用 it.next() 會(huì)返回迭代器的下一個(gè)元素,并且更新迭代器的狀態(tài)。
  • 調(diào)用 it.hasNext() 用于檢測(cè)集合中是否還有元素。
  • 調(diào)用 it.remove() 將迭代器返回的元素刪除。

Iterator 類位于 java.util 包中,使用前需要引入它,語法格式如下:

import java.util.Iterator; // 引入 Iterator 類

獲取一個(gè)迭代器:集合想獲取一個(gè)迭代器可以使用 iterator() 方法。

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
    public static void main(String[] args) {

        // 創(chuàng)建集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 獲取迭代器
        Iterator<String> it = sites.iterator();

        // 輸出集合中的第一個(gè)元素
        System.out.println(it.next());
    }
}
// 執(zhí)行以上代碼,輸出結(jié)果如下:
// Google

循環(huán)集合元素:讓迭代器 it(迭代器名字) 逐個(gè)返回集合中所有元素最簡(jiǎn)單的方法是使用 while 循環(huán)。

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
    public static void main(String[] args) {

        // 創(chuàng)建集合
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");

        // 獲取迭代器
        Iterator<String> it = sites.iterator();

        // 輸出集合中的所有元素
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}
// 執(zhí)行以上代碼,輸出結(jié)果如下:
// Google
// Runoob
// Taobao
// Zhihu

刪除元素:刪除集合中的元素可以使用 remove() 方法。

// 引入 ArrayList 和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;

// 以下實(shí)例我們刪除集合中小于 10 的元素
public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        numbers.add(12);
        numbers.add(8);
        numbers.add(2);
        numbers.add(23);
        Iterator<Integer> it = numbers.iterator();
        while(it.hasNext()) {
            Integer i = it.next();
            if(i < 10) {  
                it.remove();  // 刪除小于 10 的元素
            }
        }
        System.out.println(numbers);
    }
}
// 執(zhí)行以上代碼,輸出結(jié)果如下:
// [12, 23]

注意:Java 迭代器是一種單向遍歷機(jī)制,即只能從前往后遍歷集合中的元素,不能往回遍歷。同時(shí),在使用迭代器遍歷集合時(shí),不能直接修改集合中的元素,而是需要使用迭代器的 remove() 方法來刪除當(dāng)前元素。

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

相關(guān)文章

  • Spring與Struts整合之讓Spring管理控制器操作示例

    Spring與Struts整合之讓Spring管理控制器操作示例

    這篇文章主要介紹了Spring與Struts整合之讓Spring管理控制器操作,結(jié)合實(shí)例形式詳細(xì)分析了Spring管理控制器相關(guān)配置、接口實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2020-01-01
  • java環(huán)境變量配置超詳細(xì)圖文教程

    java環(huán)境變量配置超詳細(xì)圖文教程

    在我們學(xué)習(xí)Java語言的時(shí)候,要在命令提示符里運(yùn)用Java和Javac,用到這兩個(gè)命令的時(shí)候就要配置Java環(huán)節(jié)變量才可以,這篇文章主要給大家介紹了關(guān)于java環(huán)境變量配置的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • Java8學(xué)習(xí)教程之lambda表達(dá)式語法介紹

    Java8學(xué)習(xí)教程之lambda表達(dá)式語法介紹

    眾所周知lambda表達(dá)式是JAVA8中提供的一種新的特性,它支持Java也能進(jìn)行簡(jiǎn)單的“函數(shù)式編程”。 下面這篇文章主要給大家介紹了關(guān)于Java8學(xué)習(xí)教程之lambda表達(dá)式語法的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • SpringBoot瘦身打包部署的實(shí)現(xiàn)

    SpringBoot瘦身打包部署的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot瘦身打包部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • JAVA如何調(diào)用wsdl過程詳解

    JAVA如何調(diào)用wsdl過程詳解

    這篇文章主要介紹了JAVA如何調(diào)用wsdl過程詳解,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Java如何使用Agent和ASM在字節(jié)碼層面實(shí)現(xiàn)方法攔截

    Java如何使用Agent和ASM在字節(jié)碼層面實(shí)現(xiàn)方法攔截

    Agent是一種運(yùn)行在 Java 虛擬機(jī) (JVM) 上的特殊程序,ASM是一個(gè)輕量級(jí)的 Java 字節(jié)碼編輯和分析框架,本文為大家介紹了如何利用他們?cè)谧止?jié)碼層面實(shí)現(xiàn)方法攔截,感興趣的可以了解一下
    2023-05-05
  • Java多種經(jīng)典排序算法(含動(dòng)態(tài)圖)

    Java多種經(jīng)典排序算法(含動(dòng)態(tài)圖)

    排序算法是老生常談的了,但是在面試中也有會(huì)被問到,例如有時(shí)候,在考察算法能力的時(shí)候,不讓你寫算法,就讓你描述一下,某個(gè)排序算法的思想以及時(shí)間復(fù)雜度或空間復(fù)雜度。我就遇到過,直接問快排的,所以這次我就總結(jié)梳理一下經(jīng)典的十大排序算法以及它們的模板代碼
    2021-04-04
  • 在非spring環(huán)境中調(diào)用service中的方法

    在非spring環(huán)境中調(diào)用service中的方法

    非Spring環(huán)境指的是不使用Spring框架來管理和配置應(yīng)用程序的運(yùn)行時(shí)環(huán)境,本文將給大家介紹如何在非spring環(huán)境中調(diào)用service中的方法,文中有詳細(xì)實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2024-03-03
  • java仿百度假分頁代碼實(shí)現(xiàn)的詳解

    java仿百度假分頁代碼實(shí)現(xiàn)的詳解

    這篇文章主要介紹了java仿百度假分頁代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • mybatisPlus更新字段值為null的解決方案

    mybatisPlus更新字段值為null的解決方案

    在使用mybatis-plus時(shí),發(fā)現(xiàn)當(dāng)前端傳入的值為null值時(shí),結(jié)果無論怎么操作后端都不執(zhí)行更新null字段的操作,下面這篇文章主要給大家介紹了關(guān)于mybatisPlus更新字段值為null的解決方案,需要的朋友可以參考下
    2023-04-04

最新評(píng)論