Iterator和新增for循环

在这里插入图片描述
(1)迭代器并非是容器,它的功能是遍历容器。

(2)要想遍历,必须知道容器的确切类型,然后编码进行遍历,不同的容器有不同的遍历方式,但是如果使用迭代器的话,就不需要知道容器的类型,因为可以用一种方式遍历容器中的对象

一、Iterator接口

1、

在这里插入图片描述

(1)集合是对Collection接口进行遍历,这个接口中,有Iterator方法,所以实现Collection接口的容器都有一个iterator方法

(2)

  • 有没有下一个元素
  • 取下一个元素
  • 边遍历删除元素

2、实例1(输出,但是不删除)

在这里插入图片描述

(1)用的是HashSet接口类型的,然后添加对象,进行遍历。

(2)c.iteartor,c中的有iteartor方法,但是动态绑定,调用的是HashSet中的iterator方法,返回值就是一个对象的引用,这个对象实现了对HashSet的遍历,是对HashSet进行遍历的迭代器,这个对象的类型和类名是什么不知道,但是一定实现了Iterator接口。

(3)通过c进行遍历,如果有下一个元素的话,取下一个元素,进行遍历。

(4)这种迭代器只能前移,不能后移,因为,迭代器刚返回的时候,指向第一个元素之前,所以要访问第一个元素,先得next,之后前移获得第一个元素,再next,之后前移获得第二个元素,依次类推。


3、实例2(边遍历边删除)

在这里插入图片描述

(1)删除的时候,为什么不用容器删除呢?而是用Iterator中的remove方法呢?因为,容器在遍历的时候,有索引,删除对象的话,有影响,保证不了正确性。


4、新增for循环

在这里插入图片描述

(1)通过编译器优化,自动将arr中的值从0开始,逐渐赋值给i,然后打印出来

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值