1.定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作
比如: Array(“hh”,“red”,“java”,“hadoop”)
规则: 对集合中每个元素进行操作,得到集合每个元素的长度
package com.tipdm.scalaDemo
object p6 {
def main(args: Array[String]): Unit = {
def ppp(arr: Array[String]): Array[Int] = {
arr.map(element => element.length)
}
val array = Array("hh", "red", "java", "hadoop")
val lengths = ppp(array)
val p = lengths.toList // 将数组转换为列表
println(p) // 输出: List(2, 3, 4, 6)
}
}
结果:

2、定义一个高阶函数,对数据中的元素按照指定的规则进行过滤
比如: Array(1,4,7,9,10,6,8,99,88,66)
规则: 只保留偶数数据
package com.tipdm.scalaDemo
object p6 {
def main(args: Array[String]): Unit = {
def peng(arr: Array[Int]): Array[Int] = {
arr.filter(number => number % 2 == 0)
}
val numbers = Array(1, 4, 7, 9, 10, 6, 8, 99, 88, 66)
val ppp = peng(numbers)
val p1 = ppp.toList // 将数组转换为列表
println(p1) // 输出: List(4, 10, 6, 88, 66)
}
}
结果:

3、对数据中的元素按照指定规则进行分组
比如:Array(“zhangsan shenzhen man”,“lisi beijing woman”,“zhaoliu beijing man”)
规则: 按照地址进行分组
package com.tipdm.scalaDemo
object p6 {
def main(args: Array[String]): Unit = {
def p1(arr: Array[String]): Map[String, List[String]] = {
arr.groupBy(person => person.split(" ")(1)).mapValues(_.toList) // 将每个地址对应的数组转换为列表
}
val people = Array("zhangsan shenzhen man", "lisi beijing woman", "zhaoliu beijing man")
val newp1 = p1(people)
println(newp1)
}
}
结果: 
4、根据指定规则对数组所有元素聚合
比如:Array(10,4,6,10,2)
规则: 求和/求乘积
求和
package com.tipdm.scalaDemo
object p6 {
def main(args: Array[String]): Unit = {
def peng(arr: Array[Int]): Int = {
arr.sum
}
val pp = Array(10, 4, 6, 10, 2)
val sum = peng(pp)
println(sum) // 输出: 32
}
}
求乘积
package com.tipdm.scalaDemo
object p6 {
def main(args: Array[String]): Unit = {
def peng(arr: Array[Int]): Int = {
arr.product
}
val pp = Array(10, 4, 6, 10, 2)
val product = peng(pp)
println(product) // 输出: 4800
}
}
结果:

