Iterator迭代器与增强for循环

java中提供了很多个集合,它们在存储元素时,采用的存储方式不同。我们要取出这些集合中的元素,可通过一种通用的获取方式来完成。

Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

集合中把这种取元素的方式描述在Iterator接口中。Iterator接口的常用方法如下:

hasNext()方法:用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。

next()方法:用来返回迭代的下一个元素,并把指针向后移动一位。

由于Iterator是个接口,不能new对象,因此要用方法来创建对象。

Collection<Integer> col=new ArrayList<Integer>();
        col.add(1);
        col.add(2);
        col.add(3);
        col.add(4);
        //用迭代器进行迭代
        //1.获取迭代器对象
        Iterator<Integer> it=col.iterator();
        //2.循环取值
        while(it.hasNext()){
            int i=it.next();
            System.out.println(i);
        }

注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。

增强for循环

增强for循环是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

格式:

for(元素的数据类型 变量 : Collection集合or数组){

}

public static void main(String[] args) {
        Collection<String> col=new ArrayList<String>();
        col.add("你好");
        col.add("圣诞卡节快乐");
        //使用增强for
        for(String str:col){
            System.out.println(str);
        }
        int[] arr={1,3,5,6};
        //使用增强for
        for(int i:arr){
            System.out.println(i);
        }
    }

增强for循环和老式的for循环有什么区别?

注意:新for循环必须有被遍历的目标。目标只能是Collection或者是数组。

建议:遍历数组时,如果仅为遍历,可以使用增强for如果要对数组的元素进行 操作,使用老式for循环可以通过角标操作。

原文地址:https://www.cnblogs.com/zzq123/p/10095442.html

时间: 2024-11-05 15:56:40

Iterator迭代器与增强for循环的相关文章

java基础(18):集合、Iterator迭代器、增强for循环、泛型

1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.2 ArrayList集合存储元素 练习一:ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayLi

Java基础知识回顾-19(Collect接口,Iterator迭代器与增强for循环)

1.集合是java中提供的一种容器,可以用来存储多个数据. 2.ArrayList继承了抽象类Collection的同时,实现了接口list,同时List接口又继承了Collection接口. 3.Collection和List,ArrayList的关系 4.Collection接口的基本方法 5.用Collection创造集合的方法 Collection<元素类型> 变量名 = new ArrayList<元素类型>();      //这是将ArrayList多态为Collec

java基础-迭代器(Iterator)与增强for循环

java基础-迭代器(Iterator)与增强for循环 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Iterator迭代器概述 Java中提供了很多个集合,它们在存储元素时,采用的存储方式不同.我们需要取出这些集合中的元素,可通过一种通用的方式来完成. Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就在取出来.一直把集合中所有的元素全部取出.这种取出方式专业术语称为迭代.换句话说,迭代

Java——集合(Collection接口),迭代器,增强for循环,泛型

一.集合 Collection接口中的方法是集合中所有实现类必须拥有的方法. ArrayList implements List List extends Collection 1.基本使用 其他 import java.util.ArrayList; /* * 集合体系, * 目标 集合本身是一个存储的容器: * 必须使用集合存储对象 * 遍历集合,取出对象 * 集合自己的特性 */ public class ArrayListDemo { public static void main(St

Iterator&amp;Map&amp;List&amp;LinkedHashMap&amp;普通for循环&amp;增强for循环&amp;bean

博主老早就想总结一下,但是迫于没时间,感觉只是给自己找借口,但是现在花了一上午,终于整理好了,而且注释比较详细,废话不多说,现在上代码: 首先,博主自定义了一个bean类,为了测试自定义的那个list 这个bean里面博主把常用的类型基本都用了,但是不建议大家定义的时候使用float,真心很麻烦 另外就是get/set这一块,注意boolean类型是is和set,不是get,这个大家注意下 package cn.edu.sjzc.weiaccept.bean; /** * Created by

java基础第十二篇之集合、增强for循环、迭代器和泛型

Collection接口中的常用方法: * 所有的子类子接口都是具有的 * 集合的方法:增删改查 * * public boolean add(E e);//添加元素 返回值表示是否添加成功 * public boolean remove(Object o);//删除元素,返回值表示是否删除成功 * 没有修改方法 * 查询元素的方法没有,但是 * public int size();//查询集合集合中元素的个数 * //其他方法: * public void clear();//清空集合 * p

day191、集合 2、Iterator迭代器 3、增强for循环 4、泛型

今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 =======================第一节课开始============================================= ###01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<

Java的Iterator迭代器补充,增强for循环,泛型,List接口,set接口

1.Iterator迭代器:(1)类型转换异常:ClassCastException:集合中存放的是多个对象时,在强转时会出现: package com.oracle.demo01; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class demo01 { public static void main(String[] args) { method03();

如何正确遍历删除List中的元素(普通for循环、增强for循环、迭代器iterator、removeIf+方法引用)

遍历删除List中符合条件的元素主要有以下几种方法: 普通for循环 增强for循环 foreach 迭代器iterator removeIf 和 方法引用 (一行代码搞定) 其中使用普通for循环容易造成遗漏元素的问题,增强for循环foreach会报java.util.ConcurrentModificationException并发修改异常. 所以推荐使用迭代器iterator,或者JDK1.8以上使用lambda表达式进行List的遍历删除元素操作. 以下是上述几种方法的具体分析: 1.