我是靠谱客的博主 纯真裙子,最近开发中收集的这篇文章主要介绍集合的遍历-迭代器-增强型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<array.length;i++){
            String str =array[i];
            System.out.println(str);
        }

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

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

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

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

      //新建一个数组用于示范
Collection<String> c = new ArrayList();
        c.add("1");
        c.add("2");
        c.add("3");
        c.add("4");
        c.add("5");
        System.out.println("c:"+c);
        Iterator<String> 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);
        }

最后

以上就是纯真裙子为你收集整理的集合的遍历-迭代器-增强型for循环的全部内容,希望文章能够帮你解决集合的遍历-迭代器-增强型for循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部