迭代器使用和注意事项 | 学习笔记

简介: 快速学习迭代器使用和注意事项

开发者学堂课程【Scala 核心编程 - 进阶迭代器使用和注意事项学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9060


迭代器使用和注意事项


内容介绍

一.迭代器的简介

二.应用案例小结

三.基本说明

四.总结说明


一.迭代器的简介

扩展-迭代器

通过 iterator 方法从集合获得一个迭代器,通过 while 循环和 for 表达式对集合进行遍历.


二.应用案例小结

1) iteratpr的构建实际是 Abstractlterator 的一个匿名子类,该子类提供了

def iterator: Iterator[A] = new Abstractlterator[A]{

var these = self

def hasNext: Boolean = !these.isEmpty

def next():A= */

2)该Abstractlterator子类提供了hasNextnext等方法

3)因此,我们可以使用while的方式,使用hasNext next方法变量

我们所有的集合都有继承迭代器,这个发生作用的时候就是如下的情况


三.基本说明

通过iterator方法从集合获得一个迭代器,通过while循环和for表达式对集合进行遍历,在某些情况下就要用迭代器。

学习使用迭代器来遍历. 应用案例

val iterator = List(1,2, 3, 4, 5).iterator II 得到迭代器

println(" 遍历方式1

while (iterator.hasNext){ 用 while 来循环,用副类来得到,这种迭代器要保证之前没有迭代过。

println(iterator.next()) 1 println(" 遍历方式2 for

for(enum <- iterator){

println(enum)//

[案例演示+代码说明

iterator 的继承关系,我们直接从这定位,new 一下,然后所有的东西都会实现,其中里面有两个很重要的方法,迭代器迭代之后就没有了,除非将它储存在一个位置,我们写一个代码,然后运行一下,看是否正确。

如图

image.png

首先第一种我们使用 while 循环,使用迭代器的 while 循环,这个是可以运行的,运行之后我们会发现什么都有,会发现不断的往下走,简单的处理一下,迭代器一个是while ,一个是 for 。

四.总结说明

结构器首先使用 abstractlterator 的一个匿名子类,该子类提供了/ ,以及 abstractlterator 子类提供了 hasnext next 等方法,因此,我们可以使用 while 的方式,使用 hasnext next 方法变量。

首先我们讲了基本说明和案例,迭代器的使用,也就是在 while 中和 for 中可以使用,把代码拷贝过来,对代码小结了一下,一共讲了三点,第一点是迭代器是怎么来的,第二点则是 next 。

相关文章
|
11月前
|
C++ 容器
模板进阶和反向迭代器
模板进阶和反向迭代器
|
设计模式 Java 数据库连接
手写自定义迭代器,秒懂迭代器底层原理
迭代器模式的UML类图如下图所示。
76 0
|
28天前
|
容器
aside元素的注意事项
【8月更文挑战第31天】aside元素的注意事项。
12 1
|
3月前
|
算法 Linux C语言
7.学习STL和string类:版本、组件、构造、操作及应用
7.学习STL和string类:版本、组件、构造、操作及应用
|
4月前
|
存储 算法 编译器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(上)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
26 1
|
4月前
|
C语言 容器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(下 )
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
22 1
|
4月前
|
C语言 计算机视觉
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(中)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
26 1
|
4月前
|
并行计算 算法 安全
【C++ 迭代器 】C++ 迭代器标签的使用场景
【C++ 迭代器 】C++ 迭代器标签的使用场景
74 0
|
C++ 容器
STL 基本操作(包含所有基本的函数功能)
STL 基本操作(包含所有基本的函数功能)
83 0
|
安全 C语言 C++
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器