Scala基础知识7

一,可变数组和不可变数组的转换方法:

不可变数组转换为可变数组使用 toBuffer 函数.

可变数组转换为不可变数组使用 toArray 函数。

转换过程中原始数组不会发生变化,而是返回一个新的数组。

二,多维数组

使用 Array of 函数创建多维数组,例如二维数组val arr = Array.ofDim[Double](3,4)表示三行四列的二维数组。

遍历二维数组使用嵌套的 for 循环,通过行索引和列索引访问和设置元素。

三,列表List

不可变 List

List 默认为不可变集合,不可变列表默认是有序且允许重复数据的,创建时使用 list关键字。

集合间合并:将一个整体拆成一个一个的个体,称为扁平化。空集合 Nil

可变ListBuffer

可变列表使用 listBuffer,添加数据有三种方式:+=、append,insert。

列表的合并是通过扁平化实现的,不会嵌套列表。

四,Set 集合

默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用

scala.collection.mutable.Set 包。

​​​​​​​不可变 Set

不可变集合使用 set关键字,数据无序且不允许重复,遍历集合使用 for 循环。

​​​​​​​可变 mutable.Set

可变集合使用 mutable.set,添加和删除元素会返回新的集合。

​​​​​​​五,Map 集合

Scala 中的 Map 和 Java 类似,也是一个散列表 ,它存储的内容也是键值对(key-value **)**映射。

​​​​​​​不可变 Map

不可变映射使用 map 关键字,存储键值对,数据无序。

​​​​​​​可变 Map

可变映射使用 mutable.Map,可以添加、删除和修改键值对。

访问数据使用 get方法,如果键不存在则返回默认值**。**

​​​​​​​六,元组
元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组。注意:元组中最大只能有 22 个元素。

​​​​​​​七,集合常用函数

基本属性和常见操作

​​​​​​​衍生集合

​​​​​​​集合计算简单函数

  1. sorted

对一个集合进行自然排序,通过传递隐式的Ordering

2.sortBy

对一个属性或多个属性进行排序,通过它的类型。

3.sortWith

基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。

集合计算高级函数

过滤:遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。

​​​​​​​**转化 / 映射 map ****):******将集合中的每一个元素映射到某一个函数。

扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。

​​​​​​​分组 (group): 按照指定的规则对集合的元素进行分组。

Reduce 方法

Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。

Fold 方法

Fold 折叠:化简的一种特殊情况。

fold 基本使用

两个集合合并

相关推荐
啃火龙果的兔子1 分钟前
Java 学习路线及学习周期
java·开发语言·学习
电饭叔6 分钟前
自定义重载运算符--《python语言程序设计》2018版--第8章20题使用Rational类求和数列之一
开发语言·python
济南壹软网络科技有限公司7 分钟前
高并发电商实战:基于Java生态的多元化盲盒系统技术实现方案
java·开发语言·开源·盲盒源码·盲盒定制开发
獭.獭.10 分钟前
C++ -- 位图与布隆过滤器
开发语言·c++
工具人555511 分钟前
python 环境问题
开发语言·python
小年糕是糕手11 分钟前
【C++】string类(二)
开发语言·数据结构·c++·程序人生·算法·leetcode·数字货币
小鸡吃米…13 分钟前
Python编程语言面试问题三
开发语言·python·面试
周杰伦_Jay15 分钟前
【Go语言面试题核心详细解析】基础语法、并发编程、内存管理、接口、错误处理
开发语言·后端·golang
福尔摩斯张16 分钟前
Linux Kernel 设计思路与原理详解:从“一切皆文件“到模块化架构(超详细)
java·linux·运维·开发语言·jvm·c++·架构
Qiuner18 分钟前
Spring Boot AOP(二) 代理机制解析
java·spring boot·后端