java中的Iterator接口

1.遍历Collection的两种方式:

  • 1集合元素的遍历操作,使用迭代器Iterator接口
  • 2.foreach循环//for(集合元素的类型 局部变量 : 集合对象)
    内部仍然调用了迭代器。

2.java.utils包下定义的迭代器接口:Iterator

2.1说明:

在这里插入图片描述

  • 1.内部的方法:hasNext() 和 next()
  • 2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
  • 3.内部定义了remove(),可以在遍历的时候,删除集合中的元素。此方法不同于集合直接调用remove()

2.2作用:集合元素的遍历

2.3如何获取实例:

Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry", 20));
coll.add(new String("Tom"));
coll.add(false);

Iterator iterator = coll.iterator();
//hasNext():判断是否还有下一个元素
while (iterator.hasNext()) {
    //next():①指针下移 ②将下移以后集合位置上的元素返回
    System.out.println(iterator.next());
}

2.4常用方法:

//测试Iterator中的remove()
//如果还未调用next()或在上一次调用 next 方法之后已经调用了 remove 方法,
// 再调用remove都会报IllegalStateException。
在这里插入图片描述

2.5举例:

在这里插入图片描述

2.6图示说明:

在这里插入图片描述

2.6.remove()的使用

Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry", 20));
coll.add(new String("Tom"));
coll.add(false);

Iterator iterator = coll.iterator();

//删除集合中"Tom"
while (iterator.hasNext()) {
    Object obj = iterator.next();
    if ("Tom".equals(obj)) {
        coll.remove(obj);
    }
}

//遍历集合
iterator = coll.iterator();//经过上述操作,指针指向最末端,所以要再次调用iterator()方法
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

3.增强for循环:(foreach循环)

1.遍历集合举例:

public void test1(){
    Collection coll = new ArrayList();

    coll.add(123);//自动装箱
    coll.add("AA");
    coll.add(false);//其实存的是Boolean型
    coll.add(new Person("Tom", 12));
    coll.add(new Person("Tom", 12));
    coll.add(123);
    coll.add(new String("CC"));


    //for(集合元素的类型 局部变量 : 集合对象)
    //内部仍然调用了迭代器。

    for(Object obj : coll){
        System.out.println(obj);
    }
}

2.遍历数组举例:

public void test2(){
    int[] arr = {1,2,3,4,5,6,7};
//for(数组元素的类型 局部变量 : 数组对象)
    for(int i : arr){
        System.out.println(i);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值