ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

迭代器的代码实现与迭代器的实现原理

2022-07-06 10:31:47  阅读:122  来源: 互联网

标签:迭代 iterator 实现 代码 System next println out


 迭代器的代码实现

package Collection_Demo01;

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

/*
java.util.Iterator接口:迭代器(对集合进行遍历)有两个常用的方法
boolean hasNext()如果仍有元素可以迭代,则返回true。
判断集合中还有没有下一个元素,有就返回true,没有就返回falseE next()返回迭代的下一个元素。
取出集合中的下一个元素
Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊collection接口中有一个方法,叫iterator (),这个方法返回的就是迭代器的实现类对象
Iterator<E> iterator()返回在此collection 的元素上进行迭代的迭代器。
迭代器的使用步骤(重点)∶
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素
 */
public class Demo02_Collection {
    public static void main(String[] args) {
        //创建一个集合
        Collection<String> coll = new ArrayList<>();
        //往集合中添加元素
        coll.add("李佳航");
        coll.add("李晟");
        coll.add("张伟");
        coll.add("诸葛大力");
        coll.add("胡强");
        coll.add("欧阳莫非");

        /*
        1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)注意:
        Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
         */
        //多态   接口      实现对象
        Iterator<String> iterator = coll.iterator();

        /*
        发现使用迭代器取出集合中元素的代码,是一个重复的过程所以我们可以使用循环优化
        不知道集合中有多少元素,使用whiLe循环循环结束的条件, hasNext方法返回false
         */
        while (iterator.hasNext()){
           String  e = iterator.next();
            System.out.println(e);
        }
        System.out.println("*********************");
        for (Iterator<String> iterator1 = coll.iterator();iterator1.hasNext();){
            String next = iterator1.next();
            System.out.println(next);
        }
//
//        //2.使用iterator接口中的方法hanNext判断没有下一个元素
//        boolean b = iterator.hasNext();
//        System.out.println(b);
//        ///3.使用Iterator接口中的方法next取出集合中的下一个元素
//        String next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);
//        next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);
//        next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);
//        next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);
//        next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);
//        next = iterator.next();
//        System.out.println(next);
//
//        b = iterator.hasNext();
//        System.out.println(b);    //没有元素,返回false
//        next = iterator.next(); //没有元素,在取出元素会抛出NoSuchELementException没有元素异常
//        System.out.println(next);



    }
}

迭代器的实现原理

 

标签:迭代,iterator,实现,代码,System,next,println,out
来源: https://www.cnblogs.com/x3449/p/16449784.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有