Scala高阶函数
2017-11-18 23:24
225 查看
object TopLevelFunction { def main(args: Array[String]): Unit = { //map函数,所有集合类型都存在map函数 //Array类型 Array("spark", "scala", "hadoop", "flink").map(_ * 2).foreach(println(_)) //List类型 List((1, "spark"), (2, "hadoop"), (3, "hive")).map(x => x._1).foreach(println(_)) List((1, "spark"), (2, "hadoop"), (3, "hive")).map(_._1).foreach(println(_)) List((1, "spark"), (2, "hadoop"), (3, "hive")).map(_._2).foreach(println(_)) //Map类型 Map("spark" -> 1, "hadoop" -> 2, "flume" -> 3).map(_._1) println("=" * 40) //flatMap函数,相当于flatten+map,先执行map再执行flatten List(List(1, 2, 3), List(2, 3, 4)).flatMap(x => x).foreach(x => print(x + " ")) println() println("=" * 40) //filter函数 Array(2, 1, 5, 3, 7, 5, 9).filter(_ > 4).foreach(x => print(x + " ")) println() List("List", "Set", "Array").filter(_.length > 3).foreach(x => print(x + " ")) println() Map("spark" -> 3, "hive" -> 5, "hadoop" -> 7).filter(_._2 > 3).foreach(x => print(x + " ")) println() println("=" * 40) //reduce函数 println(Array(1, 2, 3, 4, 5).reduce(_ + _)) println(List("hadoop", "spark", "hive").reduce(_ + _)) Array(1, 2, 3, 4, 5).reduce((x, y) => { println(x, y) x + y }) Array(1, 2, 3, 4, 5).reduceLeft((x, y) => { println(x, y) x + y }) Array(1, 2, 3, 4, 5).reduceRight((x, y) => { println(x, y) x + y }) println("=" * 40) //fold函数 Array(1, 2, 3, 4, 5).foldLeft(0)((x, y) => { println(x, y) x + y }) println("*" * 20) Array(1, 2, 3, 4, 5).foldRight(10)((x, y) => { println(x, y) x + y }) println(Array(1, 2, 3, 4, 5).foldLeft(0)(_ + _)) println(Array(1, 2, 3, 4, 5).foldRight(10)(_ + _)) println("=" * 40) //scan函数 ////从左扫描,每步的结果都保存起来,执行完成后生成数组 val result = Array(1, 2, 3, 4, 5).scanLeft(0)((x, y) => { println(x, y) x + y }) println("*" * 20) //值为true,说明result是一个Int型的Array数组 println(result.isInstanceOf[Array[Int]]) for (i <- result) print(i + " ") println() println("*" * 20) //从右扫描,每步的结果都保存起来,执行完成后生成数组 val result2 = Array(1, 2, 3, 4, 5).scanRight(0)((x, y) => { println(x, y) x + y }) for (i <- result2) print(i + " ") } }
相关文章推荐
- Coursera Scala 5-4:List的高阶函数
- scala学习笔记:高阶函数
- 【Scala】高阶函数和柯里化
- Scala高阶函数操作示例详解
- Scala 高阶函数
- Scala深入浅出实战经典:23,Scala高阶函数实战详解
- 快学Scala学习笔记及习题解答(12-14高阶函数、集合、模式匹配和样例类)
- 快学Scala习题答案(第12章高阶函数)
- scala基本语法->高阶函数、闭包、柯里化
- scala高阶函数学习
- Scala 第十八讲 高阶函数 从大数据菜鸟走上大师的历程
- Scala2.11.7学习笔记(八)高阶函数
- scala中的高阶函数
- scala高阶函数总结
- scala学习笔记:高阶函数
- 每天学一点Scala之 高阶函数 flatten
- Scala学习——高阶函数
- scala高阶函数实现类似sql查询
- Scala 之 高阶函数
- Scala实践理解高阶函数