高阶函数:是一种特殊的函数,特殊之处在于:它指使用其他函数作为参数或者返回值。
object w10 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
val arr1 =arr.map(x => x*2)
for(i <- arr1) {
println(i)
}
}
}
把(1,2,3,4,5)->(1,4,9,16,25)
object w11 {
def main(args: Array[String]): Unit = {
val arr =Array(1,2,3,4,5)
val arr1=arr.map(x =>x*x)
for(i<-arr1){
println(i)
}
}
}
把(-1,2,-3,-4)->(1,2,3,4)
object w12 {
def main(args: Array[String]): Unit = {
val arr =Array(-1,2,-3,-4)
val arr1=arr.map(x =>if(x>0) x else -x)
for(i<-arr1){
println(i)
}
}
}
把数组中每个元素都打印出来
object w13 {
def main(args: Array[String]): Unit = {
val arr = Array(-1, 2, -3, -4, 5)
arr.foreach(println)
}
}
把数组中的偶数保留下来,组成新数组
object w14 {
def main(args: Array[String]): Unit = {
val arr = Array(1, 2, 3, 4, 5)
val arr1 = arr.filter(x => x%2 == 0)
arr1.foreach(println)
}
}
(1,2,3)(4,5,6)->(1,2,3,4,5,6)
object w16 {
def main(args: Array[String]): Unit = {
var arr1 = Array(
Array(1,2,3),
Array(4,5,6)
);
println(arr1(0)(0))
val arr2 = arr1.flatten
arr2.foreach(println)
}
}
reduce:聚合
object w17 {
def main(args: Array[String]): Unit = {
var arr =Array(1,2,3,4,5)
var sum =arr.reduce((x,y)=>x+y)
println(sum)
}
}
求数组最大最小值
object w18 {
def main(args: Array[String]): Unit = {
var arr = Array(-1,20,30,14)
val max=arr.reduce((x,y)=>if(x>y) x else y)
println(max)
val min=arr.reduce((x,y)=>if(x>y) y else x)
println(min)
}
}
fold()求和
object w19 {
def main(args: Array[String]): Unit = {
var arr = Array(1, 2, 3)
val sum1 = arr.fold(100)((x, y) => x + y)
println(sum1)
}
}
object w20 {
def main(args: Array[String]): Unit = {
var arr = Array(-1, 12, 0, 5, 3)
var arr2 = Array("banana", "zip", "b", "a", "apple")
var arr3 = arr2.sorted
arr3.foreach(println)
}
}
sortWith函数
object w21 {
def main(args: Array[String]): Unit = {
var arr = Array(-1, 0, 1, 3, 2)
var arr1 = arr.sortWith( (a,b)=> Math.abs(a-3) < Math.abs(b-3) )
arr1.foreach(println)
}
}