Map 映射操作的提出 | 学习笔记

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 快速学习 Map 映射操作的提出

开发者学堂课程【Scala 核心编程 - 进阶Map 映射操作的提出学习笔记,与课程紧密连接,让用户快速学习知识。

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


Map 映射操作的提出


内容介绍:

一、抛出问题引起思考

二、思考


一、抛出问题引起思考

1.看一个实际需求:

有一个 List 集合中有3个元素,分别是3、5、7,对该集合中所有元素*2,将其结果放到一个新的集合中返回,即返回一个新的 List(3,10,14),请编写程序实现。

2.如何解决

(1)使用传统的方法解决

object MapoperateDemoo1 {

def main( args : Array[string]): unit = {

val list1 = List(3,5,7)  

//不可变集合

var list2 = List[Int]()  

//创建的新集合,准备放入新的内容

for (item <- list1 ) {  

//遍历

list2 = list2 :+item * 2  

//将遍历后的每一个元素进行*2,然后返回到新的集合中

}

println(“list2=”+list2)

}

}

运行结果为:

list(3,10,14)

(2)传统方法优点分析

处理方式比较直接,并且好理解

好理解的东西往往不够高效模块化编程的特点往往不能体现出来。

(3)传统方法缺点分析

不够简洁,不够高效

没有体现出函数是编程的特点,集合交给函数得到一个新的集合,然后交给第二个函数,又得到一个新的集合。

不利于处理复杂的数据处理业务,上面要求对数据的处理只是对每个元素*2,但是现实中会有很多的需求,比如先*2,再进行过滤,过滤完后还要进行简化,简化完还要进行折叠,折叠后还要进行排序,此时用传统方法结构会非常乱。


二、思考

大数据中一个最重要的特点是希望对大量集合里面的数据进行处理,处理完后得到一个新的集合,然后再对该集合进行处理得到一个新的集合。这个特点在大数据中应用的非常广泛,大数据将对集合中数据处理的粒度提高。

原先常规的 Java ,像传统的编程语言,一般是一个变量传入后进行处理得到一个新的变量,现在的大数据处理的数据量特别大,而且是批量处理,scala的创始人马丁·奥德斯基对其做了扩展,将整体一个集传入进行处理,处理完再得到一个新的集合然后再进行处理。

注意:

Map 映射操作不能认为是只对 Map 这个集合进行操作,而是指集合进行 Map 操作,可以是任意集合。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
6月前
|
JavaScript 前端开发 定位技术
JavaScript 中如何代理 Set(集合) 和 Map(映射)
JavaScript 中如何代理 Set(集合) 和 Map(映射)
105 0
|
安全 Java
Map接口映射集合
Map接口映射集合
|
5月前
|
Python
高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作
【6月更文挑战第20天】高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作。装饰器如`@timer`接收或返回函数,用于扩展功能,如记录执行时间。`timer`装饰器通过包裹函数并计算执行间隙展示时间消耗,如`my_function(2)`执行耗时2秒。
33 3
|
2月前
|
Go
Golang语言之映射(map)快速入门篇
这篇文章是关于Go语言中映射(map)的快速入门教程,涵盖了map的定义、创建方式、基本操作如增删改查、遍历、嵌套map的使用以及相关练习题。
36 5
|
4月前
|
存储 算法 C++
C++一分钟之-扁平化映射与unordered_map
【7月更文挑战第5天】C++的STL `unordered_map`是键值对的快速查找容器,基于哈希表。常见问题包括哈希函数选择、键类型限制、内存管理和迭代顺序不确定性。要避免问题,需优化哈希函数,确保自定义类型支持哈希和比较操作,合理管理内存,不依赖迭代顺序。提供的代码示例展示了如何为自定义类型定义哈希函数并操作`unordered_map`。正确使用能提升代码效率。
44 0
C++一分钟之-扁平化映射与unordered_map
|
5月前
|
存储 算法 C++
C++一分钟之-扁平化映射与unordered_map
【6月更文挑战第30天】`std::unordered_map`在C++中提供O(1)平均操作的无序键值对存储。文章讨论了扁平化映射,用于简化多级数据结构,例如将配置文件展平。常见问题包括哈希碰撞、内存管理和键类型选择。示例展示了如何创建和访问扁平化配置映射。通过理解哈希冲突解决、内存管理和键要求,可以优化使用。
59 0
|
5月前
|
存储 C++ 容器
【C++】学习笔记——map和set
【C++】学习笔记——map和set
33 0
|
6月前
|
Go
lambda表达式操作map
lambda表达式操作map
|
6月前
|
JavaScript 前端开发
解一下操作数组的方法reduce,some,map,find
解一下操作数组的方法reduce,some,map,find
25 0