Java语言之Iterator迭代器

迭代:Collection集合元素的通用获取方式。在取元素之前, 判断集合有无元素,有就取出,继续判断,直到把集合中所有元素全部取出。

一,概述

在java.util.Iterator接口中,作为迭代器,可以对集合进行遍历
Iterator迭代器,是一个接口,我们无法直接使用,须使用Iterator接口的实现类对象。获取实现类对象的方式比较特殊,Collection接口有一个方法iterator(),此方法返回迭代器实现类对象。
即Iterator iterator(),返回此Collection的元素上进行迭代的迭代器,迭代器泛型跟着集合走。

二,常用方法

1, boolean hasNext(): 仍有元素可以迭代,返回true,没有则返回false。
2,E next():返回迭代的下一个元素。

三,迭代器原理图

在这里插入图片描述

四,迭代器使用步骤

1,使用集合中的方法iterator()获取迭代器实现类对象,使用Iterator接口接收(多态);
2,使用Iterator接口中的方法hasNext(),判断有无下一个元素;
3,使用Iterator接口中的next()方法,取出集合中下一个元素。
代码示例:

package day4_29;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class demoIterator {
    public static void main(String[] args) {
        Collection<String> list = new ArrayList<>();//多态写法
        list.add("易建联");
        list.add("姚明");
        list.add("赵睿");
        list.add("胡金秋");
        list.add("马尚");
        System.out.println(list);  //[易建联, 姚明, 赵睿, 胡金秋, 马尚]

        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.print(s+" "); //迭代器遍历集合 易建联 姚明 赵睿 胡金秋 马尚
        }
    }
}
五,增强for循环

作用:用来遍历数组或集合,比使用迭代器遍历更简单。
底层使用迭代器,使用for循环的格式,简化了迭代器的书写(JDK1.5出现的新特性),所有单列集合都可使用增强for循环。
格式:
for(集合或数组类型 变量名 : 遍历的集合或数组){
循环体
}
代码示例:

package day4_29;

import java.util.ArrayList;

public class demoForeach {
    public static void main(String[] args) {
        demo1();
        demo2();
    }

    private static void demo2() {
        int[] arr = {12,15,16,17,20};
        for(int num:arr){
            System.out.print(num+" "); //12 15 16 17 20
        }
    }

    private static void demo1() {
        ArrayList<String> arrl = new ArrayList<>();
        arrl.add("2020");
        arrl.add("is");
        arrl.add("not");
        arrl.add("good");
        arrl.add("!");
        for(String str:arrl){
            System.out.print(str+" "); // 增强for循环遍历集合 2020 is not good !
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值