数组
定长数组:
val arr1 = Array(11,21,31) 有初始值
val arr2 = new Array[T] (数组长度) 无初始值, T表示数组的类型
变长数组:(使用前需要导包 import scala.collection.mutable.ArrayBuffer
)
val arr1 = ArrayBuffer(4,2,4) 有初始值
val arr2 = new ArrayBuffer[T] (数组长度) 无初始值, T表示数组的类型
不导包会出现:
导包后:
添加元素
添加元素可以使用+=,也可以使用++=。使用+=可以添加一个或多个元素,使用++=可以添加一个数组(Array)的元素,数组中的元素会被一个个添加到a2数组中
插入元素
insert(n,x,x,x) 在下标为n的后边插入元素。
在idea中,直接打印数组只能的到数组地址,想要打印数组元素需要通过toBuffer方法转换为数组缓冲查看。
数组遍历
yield 关键字用于创建一个新数组来存储原数组改变后的值,原数组不会变
数组中还有map方法可以实现上述功能
Collection
映射map
可变map和不可变map,指的是是否可修改
不可变map (默认包:scala.collection.immutable.Map)
可变map(手动导包:import scala.collection.mutable.Map)
添加元素:
+=,不能添加重复的key,否则会覆盖,相当于修改操作
当不使用“->”时,需要先写另两个小括号,内部的小括号用来写key,value
删除元素:“-=”、“remove”
只需要指定key即可
遍历
普通for循环
模式匹配
元组tuple
元组的创建
最多可以有22个tuple
元组的获取
对偶元组可以转换为map
List
可变列表和不可变列表
不可变列表
head,tail方法
head,返回第一个元素
tail,返回除第一个元素外的集合,如果列表中只有一个元素则返回Nil(空集合)
添加元素变成新集合
头部加元素
l1.+= 4
4 +: l1
4 :: l1
尾部加元素
l1 :+ 4
l1 ++ l2
l1 ::: l2
:+用来添加元素
++、:::用来添加集合
以上操作都是创建新的集合,原来的集合没有改变。
导包import scala.collection.mutable.ListBuffer
可变list,ListBuffer
添加元素
+=
append
移除元素
-=
remove(N) N 是指下标。
可变可以转为不可变
对于操作后是否会生成新的集合,可以看具体情况。
set集合
不可变和可变
set集合运算 &(交)++(并)–(差)
可变set集合
导包import scala.collection.mutable.Set
&~ 不同于后者中的元素