集合化简介绍和案例 | 学习笔记

简介: 快速学习集合化简介绍和案例

开发者学堂课程【Scala 核心编程 - 进阶集合化简介绍和案例学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9052


集合化简介绍和案例


内容介绍

一、化简介绍

二、代码演示


一、化简介绍

1.需求引入

val list=List(1,20,30,4,5),求出 list 的和。

2.化简含义

将二元函数引用于集合中的函数。二元函数即接收两个参数的函数,以上引入的需求不仅可以使用遍历list方法来解决,同时也能使用 scala 的化简方式完成。

3.案例演示

val list=List(1,20,30,4,5)

def sum(n1:lnt,n2:lnt):lnt={

n1+n2

}

val res=list reduceLeft(sum)

Println(res=+res)

//代码说明

  1. reduceLeft函数的作用:从左开始化简
  2. defreduceLeft[B>:A](@deprecatedName(f)op:B,A)=>B):B

B,A为接收的两个参数

  1. reduceLeft(f)接收的函数需要的形式为op:(B,A)=>B):B

接收的两个参数返回的结果会作为下一次调用的第一个参数,即B

  1. reduceLeft(f)的运行规则是从左边开始执行,将得到的结果返回给第一个参数与下一个元素运行,将得到的结果再次返回给第一个参数,继续调用
  2. 即://((((1+2)+3)+4)+5)=15


二、代码演示

1.写入代码

将下列代码写入 ReduceDemo01

val list=List(1,20,30,4,5)

def sum(n1:lnt,n2:lnt):lnt={

n1+n2

}

2.位置说明

image.png

3.具体代码

package com. atguigu. chapter11

object Reduc eDemo01 {

def main(args: Array[String]):Unit = {

/*

使用化简的方式来计算 list 集合的合

*/

val list = List(1, 20, 30, 4, 5)

val res = list.reduceLeft(sum)

//执行的流程分析

//步骤1(1+20)

//步骤2(1+20)+30

//步骤3((1+20)+30)+4

//步骤4(((1+20)+30)+4)+5=60

println("res="+res) // 60

}

def sum(n1: Int, n2: Int): Int = {

println(sum被调用~~”)

n1+n2

}

}

4.对 ReduceLeft 的运行机制的说明

(1)defreduceLeft[B>:A](@deprecatedName(f)op:B,A)=>B):B

(2)reduceLeft(f)接收的函数需要的形式为op:(B,A)=>B):B

接收的两个参数返回的结果会作为下一次调用的第一个参数,即B

(3)reduceLeft(f)的运行规则是从左边开始执行得到的结果返回给第一个参数

(4)然后继续和下一个元素运行,将得到的结果继续返回给第一个参数,继续调用

(5)即://((((1+2)+3)+4)+5)=15

相关文章
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
226 0
代码随想录刷题|Leetcode 39. 组合总和 40.组合总和II 131.分割回文串
代码随想录刷题|Leetcode 39. 组合总和 40.组合总和II 131.分割回文串
代码随想录刷题|Leetcode 39. 组合总和 40.组合总和II 131.分割回文串
|
Scala 开发者
集合化简的流程示意图 | 学习笔记
快速学习集合化简的流程示意图
集合化简的流程示意图 | 学习笔记
|
存储 算法
一文搞懂全排列、组合、子集问题
Hello,大家好,我是bigsai,long time no see!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合、子集等问题更是非常经典问题。本篇文章就带你彻底搞懂全排列!
194 0
一文搞懂全排列、组合、子集问题
|
Scala 开发者
集合化简的课堂练习 | 学习笔记
快速学习集合化简的课堂练习
具体数学-第3课(递归式转化为求和求解一)
今天讲了一种将递归式转化为求和的方法。
102 0
具体数学-第3课(递归式转化为求和求解一)
具体数学-第3课(递归式转化为求和求解二)
今天讲了一种将递归式转化为求和的方法。
122 0
具体数学-第3课(递归式转化为求和求解二)