11.5 折叠(fold)

折叠的原理和reduce一样. 可以把reduce看成是flod的简化版.

通过前面的学习, 我们知道reduce是从前两个元素开始归纳的.

fold允许提供一个初始化值, 这个初始值是传递进去的函数的第一次执行时候的第一个参数, 后面的执行就和reduce一样了.

package com.atguigu.day11.operate

object FoldDemo {
  def main(args: Array[String]): Unit = {
    var list1 = List(10, 1, 3, 5, 8, 9, 22, 89)
    // 需求:计算1000减去集合中的所有的元素之后的差
    val result: Int = list1.fold(1000)(minus)
    println(result)
  }

  def minus(a: Int, b: Int) = {
    a - b
  }
}

注意:

  • foldLeft, foldRight 原理和前面的reduceLeft, reduceRight一样.
Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-12-05 20:29:39

results matching ""

    No results matching ""