Iterator接口

  1. 在Java中,变量一般是变量的引用,获取到的是它的值。
  2. 实现Iterator接口,遍历Collection实现类的内容时候,不可用Iterator自身以外的类来改变Collection实现类的内容,相当于Iterator实现类已经接管了Collection实现类。

    这里写代码片
    import java.util.Collection;
    import java.util.HashSet;
    import java.util.Iterator;

public class Itea {

public static void main(String[] args) {
    Collection<String> coll=new HashSet<String>();
    coll.add("111");
    coll.add("222");
    coll.add("333");
    coll.add("444");
    coll.add("555");
    Iterator<String> iter=coll.iterator();
    Iterator<String> iter_01=coll.iterator();
    while(iter.hasNext())
    {
        String str=iter.next();
        if(str.equals("222"))
        {
            iter.remove();
            //coll.remove(str);代码错误
        }
        else
        {
            str="666";

        }
    }
    System.out.println(coll);
}

}

“`

  1. 如:Iterator iter=coll.iterator();
    若coll之后发生变化,iter不再可以遍历coll,coll发生变化的前后两次的hashcode值是不一样的。
  2. Iterator接口采用快速失败机制,一旦在遍历集合过程中发现集合被修改(通常是程序其他进程修改),程序立即发生异常,而不是显示修改后的结果,避免共享资源引发的潜在问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值