集合化简的课堂练习 | 学习笔记

简介: 快速学习集合化简的课堂练习

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

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


集合化简的课堂练习


内容介绍

一.运行过程

二.化简


一.运行过程

在这里有一个历史的集合,在集合里面将数写的很大,因为相加不论是从左还是从右,结果都是一样的。

写成一个 miners,就是 NUMBER1 减去一个 number,现在我们来看用历史的调灵钓了一个 reduce left,然后调了一个 reduce the right,调了一个 reduce 的方法。

那么现在我们来看这个题目是什么,然后新建一个文件,我们将它叫做练习三,reduce 的一个练习,Reduce exercise,文件练习写完之后,把这个 DF 写到里面和写在外面本质是一样的,我们就将这个写到里面,现在来看看这个代码是什么。

val list4 =List(1, 9, 2,8)

def minus(num1: Int,num2: Int): Int=(

num1 -num2

) I

Var i6=(1/: list4) (minus) // ==> list4.foldLeft(0)(minus)printin(i6)//输出?

i6=(100st4)(minus)

printin(i6)//输出?

i6 = (list4:\10)(minus)// list4.foldRight(10)(minus)println(i6)//输出?

然后下面 right ,输出一个词并且说明这个词用的正确,

因为你是从左边开始化解,那么相当于一个动作是这样,是一减二减完过后,再跟三相减,所以说把这个结果拿到过后,再去跟四相等跟四相等之后把这个结果拿到之后,再传入这个 minus 的第一个参数,然后再去跟五相等,最后这个结果等于三正确,然后下面这个,从右化简它的流程是这样,同学们看是4和5相间隔,相间隔四减去一个 5a,它是先运行,做完了以后,他把这个结果传出这个 minus 的右面这个程序,那同样你这边把它包起来,包起来之后又传入下一个第二个参数,如果没问题,紧接着又做一个值传入给 minus 的归档,最后这个结果应该是等于三,算一下这个四减五等于负一,负一三减去一个负一等于四.二减去一个四等于负1/2,减去一个负,二等于三四圈,那下面这个问题我们可以直接看看源代码

vari6=(1/:list4)(minus)//=等价=> list4.foldLeft(1)(minus)println("i6=" +i6)

i6=(100/:list4)(minus)//=等价=> list4.foldLeft(100)(minus)println(i6)//输出? I

i6 =(list4:\10)(minus)//list4.foldRight(10)(minus)

println(i6) // 输出? 2

根据代码可以完全理解。


二.化简

现在就是说 reduce 底成交的,Reduce 等价于 reduce next 对我们人的正常思维都是从昨天开始执行,他也保留了这个 reduce,然后做了一个包装好这个题,我们就评价紧接着我们再来做第二个题,使用化简的方式求出历史的3427最小值,现在打开这个 ID 给大家。

写一个最小值,求出最小值,写一个函数 PDF,就 mini 接收两个参数,一个是 N1N te 类型,A11 个一个类型,A1 Int 类型,然后 N2 也是一个 int 类型,最后返回一个 int 类型,然后这边只做一个工作就可以,如果 N1 的保险,我们就返回二对,因为我要最小值 else ,返回 a,然后写完,当写完以后,我们要求最小值特别的简单,那直接写一个 mini286 等于加上类似的点。

reduce,是从左向右划点,还是从右划点,是一样的,因为你这个返回是1个字,所以说我们就从左边,左边我直接把这个 mini 放进去,代码就写完了,那么看看这个结果,应该是返回一个1就正确了,因为我要最小值1。

代码如下:

package com.atguigu.chapter11

object ScanDemoo1 {

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

//普通函数

def minus( num1 : Int, num2 : Int): Int={

num1 - num2

//5I(1,2,3,4,5)=>(5,)

val i8 = (1 to 5).scanLeft(5)(minus) //Indexedseq[Int]println(i8)

看见代码后我们就可以很清晰的了解。

相关文章
|
存储 Java 关系型数据库
Springboot yml配置参数数据加密 (数据加密篇 一)
Springboot yml配置参数数据加密 (数据加密篇 一)
2544 0
Springboot yml配置参数数据加密 (数据加密篇 一)
4.为模型增加贴图
4.为模型增加贴图
461 0
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
安全 Python
Python多线程中的死锁与递归锁
Python多线程中的死锁与递归锁
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的校友录附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的校友录附带文章和源代码部署视频讲解等
74 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的校园综合服务系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的校园综合服务系统附带文章和源代码部署视频讲解等
122 0
|
数据可视化 定位技术
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(中)
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化
|
Android开发 iOS开发 Python
06-App页面元素查看神器
06-App页面元素查看神器
想学python函数,这篇笔记你学废了吗?
执行特定任务和完成特定功能的一段代码。
想学python函数,这篇笔记你学废了吗?
|
算法 编译器
函数(2)
函数(2)