目录

(一)定长数组

1、数组定义

(1)定义数组时初始化数据

(2)定义时指定数组长度后赋值

2、数组遍历

(1)传统for循环方式

(2)增强for循环方式

(3)利用foreach算子遍历数组

(4)数组求和

3、常用方法

(1)求数组中数值总和

(2)求数组中的最大值

(3)求数组中的最小值

(4)对数组进行升序排序

(5)对数组进行降序排序

(二)变长数组

1、数组定义

2、数组合并

3、插入元素

4、移除元素

二、列表 (List)

(一)不可变列表

1、创建不可变列表

2、给列表添加元素

(1)在列表头添加元素

(2)在列表尾添加元素

3、列表合并操作

4、二维列表

(二)可变列表

1、创建可变列表

2、列表合并

3、列表排序

4、列表总和、平均值、最值

5、添加新元素

6、移除列表元素

三、映射 (Map)

(一)不可变映射

1、创建不可变映射

2、遍历不可变映射

(二)可变映射

1、创建可变映射

2、修改可变映射

3、查询可变映射

4、添加元素

5、删除元素

四、元组 (Tuple)

(一)定义元组

1、直接赋值定义元组

2、创建指定长度的元组

(二)访问元组

(三)迭代元组

(四)元组转为字符串

五、集合 (Set)

(一)定义集合

(二)增减元素

(三)集合方法

1、获取首元素

2、获取去首子集合

3、两个集合求并集

4、两个集合求交集

5、求集合的最值


Scala集合(collection)分为可变集合(mutable collection)和不可变集合(immutable collection)。可变集合可以对其中的元素进行修改、添加、移除;而不可变集合永远不会改变,但是仍然可以模拟添加、移除或更新操作。这些操作都会返回一个新的集合,原集合的内容不发生改变。

一、数组 (Array)

  • Scala中的数组分为定长数组和变长数组,定长数组初始化后不可对数组长度进行修改,而变长数组则可以修改。

(一)定长数组

1、数组定义

(1)定义数组时初始化数据

  • 自动推断数组类型

  • 手动指定数据类型

(2)定义时指定数组长度后赋值

先定义,后赋值

数组下标越界

2、数组遍历

  • 定义数组arr(自动推断类型,静态初始化)

(1)传统for循环方式

通过数组下标来遍历数组元素

通过(arr.length - 1 to 0) by -1实现反向遍历

(a to b) by 1 相当于 (a to b)

(2)增强for循环方式

正向遍历数组元素

反向遍历数组元素

(3)利用foreach算子遍历数组

(4)数组求和

采用遍历算子失败

采用增强for循环

3、常用方法

定义数组arr

(1)求数组中数值总和

调用sum方法

(2)求数组中的最大值

调用max方法

(3)求数组中的最小值

调用min方法

(4)对数组进行升序排序

调用.sorted方法

(5)对数组进行降序排序

调用.sorted.reverse方法

(二)变长数组

1、数组定义

  • 变长数组使用类scala.collection.mutable.ArrayBuffer进行定义

定义一个变长Int类型数组arr

利用+=运算符添加数组元素

遍历数组arr

利用-=运算符删除数组元素

  • 数组中有多个值相同的元素,则从前向后删除第一个匹配的元素,

2、数组合并

Scala支持使用++=符号将两个变长数组进行合并

  • 注意arr1会是合并后的数据,即ArrayBuffer(1,3,5,7,9,2,4,6,8,10)

3、插入元素

使用insert()方法可以在数组指定位置插入一个元素

无法一次性插入多个元素

4、移除元素

使用remove()方法可以在数组的固定位置移除指定数量的元素

从数组arr的下标为1的位置开始移除2元素

如果移除起始位置+删除数量 > 数组长度,会报错

二、列表 (List)

Scala中的列表分为可变列表和不可变列表,默认使用的列表为不可变列表。

(一)不可变列表

1、创建不可变列表

创建一个Int类型的列表

创建一个混合类型的列表 

2、给列表添加元素

(1)在列表头添加元素

利用.+:在列表头添加新元素

在列表nums的头部追加一个元素100,生成一个新列表 nums3,列表nums没有变的

(2)在列表尾添加元素

利用.:+在列表尾添加新元素

在列表nums的尾部追加一个元素100,生成一个新列表 num4,列表nums没有变的

3、列表合并操作

4、二维列表

列表的列表称为二维列表

  • 定义二维列表

  • 遍历二维列表

(二)可变列表

1、创建可变列表

可变List需要使用scala.collection.mutable.ListBuffer

创建空列表,添加数据

2、列表合并

将列表list1与列表list2合并,list1在前,list2在后

将列表list1与列表list2合并,list2在前,list1在后

注意:哪怕执行list1 :++ list2,依然是list1在前,list2在后

3、列表排序

列表升降序

4、列表总和、平均值、最值

5、添加新元素

调用可变列表的insert(pos, value),在pos位置插入新元素value

特殊情况,在列表头插入新元素,pos = 0

特殊情况,在列表尾追加新元素,pos = list.length

6、移除列表元素

调用可变列表的remove(pos, count),从pos位置开始移除count个列表元素

三、映射 (Map)

Scala中的Map也分可变Map不可变Map,默认为不可变Map

(一)不可变映射

1、创建不可变映射

->的形式,创建不可变映射mp

(, )的形式,创建不可变映射mp

Map是抽象类,不能实例化

2、遍历不可变映射

调用foreach实现遍历

利用for循环来实现遍历

(二)可变映射

创建可变Map需要引入类scala.collection.mutable.Map

1、创建可变映射

2、修改可变映射

02存在,执行修改操作

05存在,执行添加操作

3、查询可变映射

查询键02的值,如果没有查到,则返回-1

查询键08的值,如果没有查到,则返回-1

4、添加元素

查看可变映射当前值

用两种方式添加元素

 5、删除元素

删除存在的键 – 07 对应的元素

删除不存在的键 – 11 对应的元素,不报错,映射也没有变化

四、元组 (Tuple)

元组是一个可以存放不同类型对象的集合,元组中的元素不可以修改。

(一)定义元组

1、直接赋值定义元组

2、创建指定长度的元组

Scala支持的元组最大长度为22即可以使用Tuple1Tuple22,元组的实际类型取决于元素数量和元素的类型。

(二)访问元组

元组的元素下标从1开始

访问元组的第6个元素(不存在的元素),报错

(三)迭代元组

不能直接用for循环遍历元素,可以使用元组的productIterator()方法

(四)元组转为字符串

使用Tuple.toString()方法可将元组全部元素组合成一个字符串

  • 元组与字符串进行连接运算,元组会自动转换成字符串

五、集合 (Set)

  • Scala Set集合存储的对象不可重复。Set集合分为可变集合和不可变集合,默认情况下,Scala使用的是不可变集合,如果要使用可变集合,就需要引用scala.collection.mutable.Set类。
  • 集合的三大特点:确定性、互异性、无序性

(一)定义集合

定义一个空的不可变集合Nothing – 一无所有,Scala所有类的子类)

定义一个非空的不可变集合(Any – 包罗万象,Scala所有类的父类)

(二)增减元素

与列表一样,对于不可变集合进行元素的增加和删除实际上会产生一个新集合,原来的集合并没有改变

  • 创建一个不可变集合

  • 添加一个集合不存在的元素

  • 添加一个集合存在的元素1,集合里始终只有一个1(集合具有互异性)

  • 减去一个存在的元素2

  • 减去一个不存在的元素666

(三)集合方法

创建一个集合

1、获取首元素

调用head方法

2、获取去首子集合

调用tail方法,去掉了集合里的第一个元素

3、两个集合求并集

利用++求两个集合的并集

4、两个集合求交集

利用.&.intersect()方法求两个集合的交集

5、求集合的最值

利用maxmin方法求集合最值


版权声明:本文为balabalalibala原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/balabalalibala/article/details/124814295