遍历集合元素

使用Iterator接口

Iterator主要用于遍历Collection集合中的元素(迭代访问)。
Iterator对象也叫迭代器。

Iterator接口向应用程序提供了遍历Collection集合元素的统一编程接口。Iterator接口定义了三个方法:
1、boolean hasNext():如果被迭代的集合元素还没有被遍历,返回true.
2、Object next():返回集合里面的下一个元素.
3、void remove():删除集合里上一次next方法返回的元素.

Iterato仅用于遍历集合,本身不提供盛装对象的能力。要创建Iterator对象的前提是有一个被迭代的集合。

*重点:
当用Iterator对集合元素进行迭代时,并不是把集合本身元素传给迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集合元素本身无任何影响。 只有通过Iterator的remove方法删除上一次next方法返回的集合元素才可以,否则会引发异常。

Iterator迭代器采用的是 快速失败(fail-fast)机制,一旦在迭代过程中发现集合已被修改,程序立即引发异常,而不是显示修改后的结构,这样可以避免共享资源而引发的潜在问题。

使用foreach循环

与Iterator接口相似的是,foreach循环中的迭代变量也不是集合元素本身,系统只是依次把集合元素的值赋给迭代变量。
public class ForeachTest 
{
    public static void main(String[] args) 
    {
        Collection books = new HashSet();
        books.add(new String("企业应用"));
        books.add(new String("疯狂讲义"));
        for(Object obj : books)
        {
            String book = (String)obj;
            System.out.println(book);
            if(book.equals("疯狂讲义")
            {
                //下面代码引发异常
                books.remove(book);
            }
        }
        System.out.println(books);
    }
}

当使用foreach循环时,集合也不能被改变,否则将引发异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值