048、JAVA的Iterator迭代器

一、简介
    在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口`java.util.Iterator`。`Iterator`接口也是Java集合中的一员,但它与`Collection`、`Map`接口有所不同,`Collection`接口与`Map`接口主要用于存储元素,而`Iterator`主要用于迭代访问(即遍历)`Collection`中的元素,因此`Iterator`对象也被称为迭代器。

二、定义:
    迭代器:集合有很多种,有些是没有索引的,所以不能有for循环,迭代器是一种通用的从集合中取出元素的方式.
三、常用方法:
    1、boolean hasNext()如果仍有元素可以迭代,则返回 true,用来判断是否集合中还有元素
    2、E next() 获取集合中下一个元素
    3、由于iterator是一个接口,无法实例化对象,需要是使用collection中的方法:
        Iterator<E> iterator()返回在此 collection 的元素上进行迭代的迭代器。
        Iterator<E>也是一个泛型,集合是什么类型,迭代器就是什么类型。
四、增强for循环
    1、增强for循环foreach,它底层也是迭代器,只是使用了for循环的格式。JDK1.5以后出现的。
    2、作用:用来遍历集合或数组;
    3、格式:
        for(数组/集合数据类型 变量名:数组/结合名){
            sout(变量名);
        }

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

public class Iterator {
    public static void main(String[] args) {
        Collection<String> ce = new ArrayList<>();
        ce.add("张珊");
        ce.add("李思");
        ce.add("王武");
        ce.add("赵柳");
        ce.add("林奇");
        System.out.println(ce);
        System.out.println("==========================");
        java.util.Iterator<String> it = ce.iterator();

        while (it.hasNext())
        {
            String next = it.next();
            System.out.println(next);
        }
        System.out.println("==========================");

        for(java.util.Iterator<String> iterator = ce.iterator();iterator.hasNext();){
            String next = iterator.next();
            System.out.println(next);
        }
        System.out.println("==========增强for循环=========");
        //增强for循环 ----集合或数组
        //数组
        int[] arry =new int[] {1,2,31,43,45};
        for(int i:arry){
            System.out.println(i);
        }
        //集合
        ArrayList<String> arryList = new ArrayList<>();
        arryList.add("maozhedong");
        arryList.add("zhouenlai");
        arryList.add("liushaoqi");
        arryList.add("zhude");
        for(String str:arryList){
            System.out.println(str);
        }
    }
}

输出:

[张珊, 李思, 王武, 赵柳, 林奇]
==========================
张珊
李思
王武
赵柳
林奇
==========================
张珊
李思
王武
赵柳
林奇
==========增强for循环=========
1
2
31
43
45
maozhedong
zhouenlai
liushaoqi
zhude

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值