学习目标
遍历(foreach)
格式
foreach(f: (A) ⇒ Unit): Unit
说明
foreach | API | 说明 |
---|---|---|
参数 | f:(A) => Unit | 接收一个函数对象,函数的输入参数为集合的元素,返回值为空 |
返回值 | Unit | 空 |
foreach执行过程
示例
有一个列表,包含以下元素:1,2,3,4, 请使用foreach方法遍历打印每个元素
参考代码
// 定义一个列表
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
// 迭代打印
scala> a.foreach((x:Int)=>println(x))
执行结果
使用类型推断简化函数定义
scala可以自动来推断出来集合中每个元素参数的类型
创建函数时,可以省略其参数列表的类型
示例
1.有一个列表,包含以下元素:1,2,3,4,请使用foreach方法遍历打印每个元素
2.使用类型推断简化函数定义
参考代码
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
// 省略参数类型
scala> a.foreach(x=>println(x))
执行结果
使用下划线来简化函数定义
当函数参数,只在函数体中出现一次,且函数体没有嵌套调用时,可以使用下划线来简化函数定义
示例
1.有一个列表,包含以下元素:1,2,3,4,请使用foreach方法遍历打印每个元素
2.使用下划线简化函数定义
参考代码
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
a.foreach(println(_))
执行结果
注
如果方法参数是函数,如果出现了下划线,scala编译器会自动将代码封装到一个函数中
参数列表也是由scala编译器自动处理
映射(map)
集合的映射操作是将来在编写Spark/Flink用得最多的操作,
是我们必须要掌握的。
因为进行数据计算的时候,
就是一个将一种数据类型转换为另外一种数据类型的过程。
map方法接收一个函数,将这个函数应用到每一个元素,返回一个新的列表
格式
def map[B](f: (A) ⇒ B): TraversableOnce[B]
说明
map方法 | API | 说明 |
---|---|---|
泛型 | [B] | 指定map方法最终返回的集合泛型 |
参数 | f:(A) => B | 传入一个函数对象,该函数接收一个类型A(要转换的列表元素),返回值为类型B |
返回值 | TraversableOnec[B] | B类型的集合 |
map方法解析
案例一
1.创建一个列表,包含元素1,2,3,4
2.对List中的每一个元素加1
参考代码
scala> a.map(x=>x+1)
res5: List[Int] = List(2, 3, 4, 5)
执行结果