一、foreach函数
作用: 对数组的每一个元素应用函数。
语法: 数组.foreach(元素=>{})
代码:
arr2.foreach(println)
二、filter函数
作用: 对数组元素使用函数进行过滤。
语法: 新数组= 旧数组.filter(元素=>bool) 它的参数是一个函数,这函数的返回值是布尔值。如果返回为true就保留。
- filter
- 过滤器。
- filter(函数)
- 如果函数的返回值为true,则元素就保留下来
// 把数值为偶数的留下来
val arr1 = Array(1,2,3,4,5)
// val arr2 = arr1.filter( x=> {
// println(x)
// x%2 == 0
// })
val arr2 = arr1.filter(x => x%2==0)
arr2.foreach(println)
var score = Array(90,98,60,49,100)
// 把小于80的分去掉,只保留大于80的分数
score.filter( x => x>80).foreach(println)
三、reduce函数
作用: reduce 是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的二元操作(即取两个元素进行操作)对集合中的所有元素进行递归处理,并最终将其合并为一个值。
语法: reduce 函数需要一个函数作为参数,这个函数接受两个相同类型的参数,并返回一个值。
val arr = Array(1,2,3,4,5)
// 求数组元素的累加
val rst = arr.reduce((x,y) => x + y)
// val rst = arr.sum
println(s"rst = ${rst}")
四、reduceLift和reduceRight
作用: reduceLeft 是从集合的左侧开始聚合,与reduce等价; reduceRight 是从集合的右边开始。
- reduce ==== reduceLeft 从左向右计算
- reduceRight 从右向左计算
val arr = Array(1,2,3)
val rst = arr.reduceLeft( (x,y) => x - y)
val rst1 = Array(1,2,3,4).reduceRight( (x,y) => x - y)
println(s"rst = ${rst}")
println(s"rst = ${rst1}")
运行结果:
五、fold
作用: fold 是一种 集合操作 (与reduce类似),用于对集合中的元素进行聚合操作,返回一个单一的结果,需要提供一个初始的“种子”值。
语法:数组.fold(初值)(函数)
- flod:带初值的reduce
val rst = Array(1,2,3).fold(10)((x,y)=>x+y)
println(s"rst = ${rst}") // 结果:16