迭代器

    任何容器类,都必须有某种方式可以插入元素并将它们再次取回。毕竟持有事物是容器最基本的工作。对于List,add()是插入元素的方法之一,而get()是取出元素的方法之一。
    如果从更高层次的角度思考,会发现这里有个缺点:要使用容器,必须对容器上网确切类型编程。初看起来这没有什么不好,但是考虑下面的情况:如果原本是对着List编码的,但是后来发现如果能够把相同的代码应用于Set,将会显得非常方便,此时应该怎么做?或者打算从头开始编程写通用的代码,它们只是使用容器,不知道或者说不关心容器的类型那么如何才能不冲写代码就可以应用于不同类型的容器?
    迭代器(也是一种设计模式)的概念可以用于达成此目的。迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。此外,迭代器通常被称为轻量级对象:创建它代价小。因此,经常可以见到对迭代器有些奇怪的限制;例如:java的Iterator只能单项移动,这个Iterator只能用来:
    (1)使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素。
    (2)使用next()获得序列中的下一个元素。
    (3)使用hasNext()检查序列中是否还有元素。
    (4)使用remove()将迭代器新近返回的元素删除。
Iterator能够将遍历序列的操作与序列底层的结构分离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值