栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

集合的遍历-迭代器-增强型for循环

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

集合的遍历-迭代器-增强型for循环

集合的遍历

collection提供了方法-Iterator iterator()
该方法可以获取当前集合元素的迭代器:
* java.util.Iterator接口,迭代器接口,规定了遍历集合的相关操作
* 使用迭代器遍历集合存在的步骤为:
* 问->取->删,其中删除元素不是必要操作
*  不同的集合都提供了遍历自身元素的迭代器实现类,我们无需记住它们的名字,当做Iterator使用即可.
       新建一个集合用于后边示例:

        Collection c = new ArrayList();
        c.add("1");
        c.add("#");
        c.add("2");
        c.add("#");
        c.add("3");
        c.add("#");
        c.add("4");
        c.add("#");
        c.add("5");
        System.out.println("c:"+c);

 集合中的元素返回时返回的是object类型,必须经过造型
迭代器的常用方法: boolean hasNext()
询问迭代器是否还有下一个元素可供迭代
 注:迭代器默认开始位置是在集合第一个元素之前,因此第一次调用时判断的就是是否有第一个元素,并且无论调用多少次hasNext()方法,迭代器的位置都不会改变.语句方法: E next()
迭代器向后移动一个位置指向集合下一个元素并将其获取.

        Iterator it = c.iterator();
        while (it.hasNext()){
            String str = (String) it.next();
            if("#".equals(str)){
                it.remove();
            }

            System.out.println(str);
        }
        System.out.println(c);

         迭代器遍历过程中不得通过集合方法(即下述方法)增删元素,否则会抛出异常
        if("#".equals(str)){
               c.remove(str);
            }

 增强型for循环

JDK1.5之后推出的一个新特性
* 可以让我们用相同的语法遍历集合或数组
* 语法:for(类型 变量名 : 集合或数组){... }

新建数组array并输出

 String[] array ={"1","2","3","4","5"};
        for(int i=0;i

 新循环遍历数组会被编译器改成普通for循环

 for (String str : array){
            System.out.println(str);
        }

 JDK5之后推出的另一个特性:泛型
        泛型也称为参数化类型,允许我们在使用一个类时,传入某个类型来规定其内部的属性,方法的参数或方法返回值的类型,使得我们使用时更加方便.在集合中泛型被广泛使用,用于规定集合中的元素类型.泛型原型为Object,编译器认可 赋值操作时,编译器会检查类型是否匹配,不匹配会编译不通过

        //Collection<集合类型,如果规定为String则添加int类型时编译不通过>

      //新建一个数组用于示范
        Collection c = new ArrayList();
        c.add("1");
        c.add("2");
        c.add("3");
        c.add("4");
        c.add("5");
        System.out.println("c:"+c);

        Iterator it =c.iterator();//迭代器

        迭代器指定的泛型应当与其遍历的集合泛型一致

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

        新循环遍历集合会被编译器改回成遍历器遍历

   for (Object obj : c){
            
            String str =(String)obj;
            System.out.println(str);
        }

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037745.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号