Java中为什么要使用迭代器?

一、推出迭代器(iterator)目的

1.从更高的角度进行分析,使用容器有一个缺点:要使用容器,就必须对容器的确切类型编程;如果我们暂且搁置一边,先来说说下面一种情况:
(1)如果你在代码中原本对List进行编程,但是后来感觉使用Set进行编程更方便一些,此时你应该怎么做?你的答案可能会按照Set的逻辑在重头写代码,它们只是使用容器,不知道或者说不关心容器的类型,那么如何在不重写代码就应用于不同类型的容器?

二、迭代器概念

1.迭代器是一种设计模式,它是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道该序列的底层结构。此外,迭代器通常被称为“轻量级”对象,因为创建它的代价小。ex:Java中的Iterator功能比较简单,并且只能单向移动:
  (1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
  (2) 使用next()获得序列中的下一个元素。
  (3) 使用hasNext()检查序列中是否还有元素。
  (4) 使用remove()将迭代器新返回的元素删除。

2.未使用迭代器与使用迭代器遍历列表中元素,如下图代码中所示:
在这里插入图片描述
3.创建一个display()方法,它不必知道容器的确切类型,如下图所示:
在这里插入图片描述
注意,display()方法不包含任何有关它所遍历的序列的类型信息。展示出Iterator的真正威力:能够将遍历序列的操作与序列底层的结构分离。正是这样,我们有时会说:迭代器统一了对容器的访问方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值