在进行数据结构的遍历时,你是否对采用最原始的方法,使用一个for循环,将所有的元素慢慢遍历感到厌烦?
幸运的是这里有一个更加简单的途径:部署Iterator接口
我们在创建赫夫曼编码时,使用到了Iterator,大家可能比较陌生,但在此处它的用途只是:
为实现数据结构的遍历操作
下面,本文整理一下Iterator的用法:
一、概述
1.1 Iterator是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作
1.2 使用next()获得序列中的下一个元素(注意:第一次调用Iterator的next()方法时,它返回序列的第一个元素)
1.3 每一次调用next方法,都会返回数据结构的当前成员的信息。具体来说,就是返回一个包含value和done两个属性的对象。其中,value属性是当前成员的值,done属性是一个布尔值,表示遍历是否结束。
1.4使用hasNext()检查序列中是否还有元素。
1.5使用remove()将迭代器新返回的元素删除。
1.6 有一些数据结构已经具备了Iterator接口:
数组
某些类似数组的对象
Set和Map结构。
其他数据结构(主要是对象)的Iterator接口,都需要自己 Symbol.iterator属性上