目录
(一)定长数组
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)
先定义,后赋值
数组下标越界
arr
(自动推断类型,静态初始化)通过数组下标来遍历数组元素
通过(arr.length - 1 to 0) by -1
实现反向遍历
(a to b) by 1
相当于 (a to b)
正向遍历数组元素
反向遍历数组元素
采用遍历算子 - 失败
采用增强for循环
定义数组arr
调用sum
方法
调用max
方法
调用min
方法
调用.sorted
方法
调用.sorted.reverse
方法
scala.collection.mutable.ArrayBuffer
进行定义定义一个变长Int类型数组arr
利用+=运算符添加数组元素
遍历数组arr
利用-=运算符删除数组元素
Scala支持使用++=符号将两个变长数组进行合并
使用insert()方法可以在数组指定位置插入一个元素
无法一次性插入多个元素
使用remove()方法可以在数组的固定位置移除指定数量的元素
从数组arr的下标为1的位置开始移除2元素
如果移除起始位置+删除数量 > 数组长度,会报错
Scala中的列表分为可变列表和不可变列表,默认使用的列表为不可变列表。
创建一个Int
类型的列表
创建一个混合类型的列表
利用.+:在列表头添加新元素
在列表nums
的头部追加一个元素100
,生成一个新列表 nums3
,列表nums
没有变的
利用.:+在列表尾添加新元素
在列表nums
的尾部追加一个元素100,生成一个新列表 num4
,列表nums
没有变的
列表的列表称为二维列表
可变List需要使用scala.collection.mutable.ListBuffer类
创建空列表,添加数据
将列表list1
与列表list2
合并,list1
在前,list2
在后
将列表list1
与列表list2
合并,list2
在前,list1
在后
注意:哪怕执行list1 :++ list2
,依然是list1
在前,list2
在后
列表升降序
调用可变列表的insert(pos, value),在pos位置插入新元素value
特殊情况,在列表头插入新元素,pos = 0
特殊情况,在列表尾追加新元素,pos = list.length
调用可变列表的remove(pos, count),从pos位置开始移除count个列表元素
Scala中的Map也分可变Map和不可变Map,默认为不可变Map。
用键
->
值
的形式,创建不可变映射mp
用(
键
,
值
)
的形式,创建不可变映射mp
Map是抽象类,不能实例化
调用foreach
实现遍历
利用for循环来实现遍历
创建可变Map需要引入类scala.collection.mutable.Map
键02
存在,执行修改操作
键05
存在,执行添加操作
查询键02
的值,如果没有查到,则返回-1
查询键08
的值,如果没有查到,则返回-1
查看可变映射当前值
用两种方式添加元素
删除存在的键 - 07
对应的元素
删除不存在的键 - 11
对应的元素,不报错,映射也没有变化
元组是一个可以存放不同类型对象的集合,元组中的元素不可以修改。
Scala支持的元组最大长度为22,即可以使用Tuple1到Tuple22,元组的实际类型取决于元素数量和元素的类型。
元组的元素下标从1开始
访问元组的第6个元素(不存在的元素),报错
不能直接用for循环遍历元素,可以使用元组的productIterator()
方法
使用Tuple.toString()方法可将元组全部元素组合成一个字符串
定义一个空的不可变集合(Nothing - 一无所有,Scala所有类的子类)
定义一个非空的不可变集合(Any - 包罗万象,Scala所有类的父类)
与列表一样,对于不可变集合进行元素的增加和删除实际上会产生一个新集合,原来的集合并没有改变
1
,集合里始终只有一个1
(集合具有互异性)2
666
创建一个集合
调用head
方法
调用tail
方法,去掉了集合里的第一个元素
利用++求两个集合的并集
利用.&
或.intersect()
方法求两个集合的交集
利用max
和min
方法求集合最值