Java基础:专门处理Collection中的元素的迭代器Iterator、增强for循环

为方便的处理集合Collection中的元素,Java中出现了一个对象叫做 迭代器(Iterator),该对象提供了一些方法专门处理集合中的元素

主要方法(下例中):
boolean b = iter.hasNext(); // 判断是否还有下一个元素?
String s = iter.next(); // 取出下一个元素

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

public class Demo {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<>();
        coll.add("关羽");
        coll.add("张飞");
        coll.add("赵云");
        coll.add("黄忠");
        coll.add("马超");

		// 对 Collection 进行迭代的类,称其为迭代器。
		// 专业对象做专业的事情,迭代器就是专门取出集合元素的对象。
		// 但是该对象比较特殊,不能直接创建对象(通过new),
		// 该对象是以内部类的形式存在于每个集合类的内部。
		// 所以所有的Collection体系集合都可以获取自身的迭代器。
		
        // 使用集合中的方法iterator()获取迭代器的实现类对象
        // 用Iterator接口类型的iter接收(多态)
        // Iterator<E>也有泛型,和集合保持一致,这里都用String
        // 如果前面集合没有带上泛型的话,迭代器也不需要带
        Iterator<String> iter = coll.iterator();
        boolean b = iter.hasNext();// 判断是否还有下一个元素?
        System.out.println(b);
        String s = iter.next();// 取出下一个元素
        System.out.println(s);
        
        System.out.println("用while循环把剩下的一次性取出");
        while (iter.hasNext()) {
            String e = iter.next();
            System.out.println(e);
        }
    }
}

/*
true
关羽
用while循环把剩下的一次性取出
张飞
赵云
黄忠
马超
*/

增强for循环 用来遍历集合Collection和数组(只能是这两者)。底层用的也是迭代器,使用for循环的形式简化迭代器书写,所有单列集合都可以使用增强for循环。

格式:for(集合/数组的数据类型 变量名:集合名/数组名){sout(变量名)}

import java.util.ArrayList;

public class Demo {
    public static void main(String[] args) {
        method1();
        method2();
    }

    // 使用增强for循环遍历数组
    private static void method1() {
        String[] arr = {"貂蝉", "杨玉环", "王昭君", "西施"};

        // 格式:for(集合/数组的数据类型 变量名:集合名/数组名){sout(变量名)}
        for (String i : arr) {
            System.out.println(i);
        }
    }

    // 使用增强for循环遍历集合Collection
    private static void method2() {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(745);
        list.add(87);
        list.add(3310);
        // 格式:for(集合/数组的数据类型 变量名:集合名/数组名){sout(变量名)}
        for (int s : list) {
            System.out.println(s);
        }
    }
}

/*
貂蝉
杨玉环
王昭君
西施
745
87
3310
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值