迭代器

作者: 在努力中 | 来源:发表于2018-05-22 20:51 被阅读0次
package test;

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

/**
 * 迭代器:用来遍历数组
 * @author 李双阳
 *
 */
public class TestIterator {
    public static void main(String[] args) {
        //定义一个列表
        Collection c = new ArrayList();
        
        c.add("一");
        c.add("二");
        c.add("三");
        c.add("四");
        c.add("五");
        
        
        /**第一种遍历方式*/
        //第一种便利方式,转成数组
        Object[] arr = c.toArray();
//      arr[1] = "";
        //for循环遍历输出
        System.out.println("============for循环==============");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        //增强for循环
        System.out.println("===========增强for循环(不涉及下标,只遍历)============");
        for (Object object : arr) {
            System.out.println(object);
        }
        //集合元素copy到数组中遍历,效率低,导致了内存浪费
        
        /**第二种遍历方式
         * 迭代器:
         * 1.Iterator() ------------获取当前集合迭代器
         * 2.boolean hasNext()------判断有没有下一个元素
         * 3.Object next()----------获取当前迭代器指向的元素,获取之后,会指向下一个元素
         * 4.void remove()----------删除当前迭代器通过next()获取到的元素
         * */
        //获取当前集合迭代器
        Iterator it = c.iterator();
        /*
        System.out.println("当前元素之后还有元素吗 ? "+it.hasNext());
        System.out.println("当前迭代器指向的元素是:  "+it.next());//一
        System.out.println("当前迭代器指向的元素是:  "+it.next());//二,因为会获取当前对象后,指向下一个对象,最后一个会报错
        it.remove();//删除当前对象--二
//      it.remove();//不能连续删除两个,因为指向被删除了,如果没有next()上一句也回报错,所以remove不能单独使用
        System.out.println(c);//没有了二
        */
        System.out.println("===========迭代器遍历(Iterator)============");
        while(it.hasNext()){
            System.out.println(it.next());
            it.remove();//可以用来清空整个集合
        }
        System.out.println("是否为空: "+c.isEmpty());//true
        
    }
}

相关文章

  • 迭代器

    本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代...

  • 迭代器与生成器

    迭代(iteration)与可迭代(iterable) 迭代器 迭代器协议(iterator protocol) ...

  • 10.迭代器与生成器

    一、迭代器 1). 迭代器概述 类比Java中的迭代器,参考迭代器模式https://www.jianshu.co...

  • 9 ES6 迭代器、生成器

    1、Iterator迭代器 ->遵循迭代模式思想实现,分为内部迭代器、外部迭代器,聚焦点:添加迭代接口 (1).迭...

  • C++boolan part3_week4

    1. 迭代器 1.1 迭代器的种类 使用随机访问迭代器的容器:array, vector,deque使用双向迭代器...

  • 迭代器模式

    内部迭代器和外部迭代器 简单地讲,内部迭代器就是类似 forEach 的迭代器,其内部迭代逻辑已经制定好,只要传入...

  • vector erase的用法

    正向迭代器: 反向迭代器:

  • 10 python中的迭代器和生成器

    1 迭代器 遵循了迭代器协议的对象为迭代器,即内部调用iter()方法转化成的对象为成迭代器。 1.1 迭代器的特...

  • 第7章迭代器模式

    第7章迭代器模式 7.1 jQuery中的迭代器 7.2 实现自己的迭代器 7.3 内部迭代和外部迭代 1内部迭代...

  • 我们来讲讲Python的迭代器

    迭代器 迭代器的作用:迭代器的作用就是迭代,可以让不是序列但是表现出序列行为,例如迭代字典的键,文件的行 迭代器的...

网友评论

      本文标题:迭代器

      本文链接:https://www.haomeiwen.com/subject/ramkjftx.html