我是靠谱客的博主 纯真大侠,最近开发中收集的这篇文章主要介绍迭代器(Iterator)详解1. 是什么2. 为什么3.怎么用4.注意,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇文章将对迭代器(Iterator)从四个方面进行详解。

1. 是什么

迭代器(Iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址[1]

通俗点说,迭代器表现的像指针,读取集合或者数组中的一个值,读完以后又指向下一条数据,一个个数过去。

 

2. 为什么

我们知道,数据容器很多,有数组、链表、树等等,对数据容器中的元素进行遍历也对应的有各自的方法。设想一下,如果我们要为数组和集合设计查找算法,因为找下一个元素在数组和集合中的操作不同,只是为了查找。核心思想是寻找下一个元素,但要实现两套不同的代码,显然这是不优秀的。

有了迭代器,我们可以将算法和特定的容器分离开来。它可以遍历并选择序列中的对象,而我们不需要了解该序列的底层结构。也就是说功能代码我们只需要实现一套就行。比如要实现查找,那么代码实现后只要对迭代器适用就行了,不用考虑不同的容器之间你的功能代码的底层实现。

 

3.怎么用

迭代器的类型有很多,譬如单向、双向等等。但核心功能是差不多的,当需要追求某一特定容器时可选用更特殊的迭代器。

例如Java 中的Iterator ,功能比较简单,并且只能单向移动:

    (1) 使用方法iterator() 要求容器返回一个Iterator 。第一次调用Iterator 的next() 方法时,它返回序列的第一个元素。注意:iterator() 方法是java.lang.Iterable 接口,被 Collection 继承。

    (2) 使用next() 获得序列中的下一个元素。

    (3) 使用hasNext() 检查序列中是否还有元素。

    (4) 使用remove() 将迭代器新返回的元素删除。

Iterator 是 Java 迭代器最简单的实现,为 List设计的 ListIterator 具有更多的功能,它可以从两个方向遍历List ,也可以从List 中插入和删除元素。

4.注意

1.在迭代器迭代元素的过程中,不允许使用集合对象改变集合中的元素个数,如果需要添加或者删除只能使用迭代器的方法操作。

2.如果使用了集合对象改变集合中的元素个数那么就会报错:不改变个数即可,替换也可以的。

3.迭代器的生存周期为创建到使用结束的时段。

4. foreach : Iterator 的封装变形,变得比 Iterator更简单。但是他也需要知道数组或集合的类型。并且,Iterator 需要注意的,foreach 同样需要注意。

参考资料:

[1] https://baike.baidu.com/item/%E8%BF%AD%E4%BB%A3%E5%99%A8/3803342?fr=aladdin迭代器_百度百科

 

 

最后

以上就是纯真大侠为你收集整理的迭代器(Iterator)详解1. 是什么2. 为什么3.怎么用4.注意的全部内容,希望文章能够帮你解决迭代器(Iterator)详解1. 是什么2. 为什么3.怎么用4.注意所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部