一、集合简介
Scala集合分为三大类:序列(Seq)、集(Set)、映射(Map),所有集合都扩展自Iterable特质。集合分为可变集合和不可变集合:
不可变集合:scala.collection.immutable
可变集合:scala.collection.mutable
二、数组
- 不可变数组
定义:val arr = new Array[Int](10)
特点:长度固定,修改操作会返回新数组。

- 可变数组(ArrayBuffer)
定义:val arr = ArrayBuffer[Any](3, 2, 5)
特点:支持动态增删元素。

- 多维数组
定义:val arr = Array.ofDim[Double](3, 4)
三、列表(List)
-
不可变List
定义:val list = List(1, 2, 3)
特点:元素有序、可重复,支持::操作符和扁平化操作。 -
可变ListBuffer
定义:val buffer = ListBuffer(1, 2, 3)
特点:支持动态增删元素。
四、Set集合
- 不可变Set
定义:val set = Set(1, 2, 3)
特点:元素无序、不可重复。
Scala
def main(args: Array[String]): Unit = {
//(1)Set 默认是不可变集合,数据无序
val set = Set(1,2,3,4,5,6)
//(2)数据不可重复
val set1 = Set(1,2,3,4,5,6,3)
//(3)遍历集合for(x<-set1){ println(x)
}
}
}
- 可变Set
定义:val set = mutable.Set(1, 2, 3)
特点:支持动态增删元素。
五、Map集合
-
不可变Map
定义:val map = Map("a" -> 1, "b" -> 2) -
可变Map
定义:val map = mutable.Map("a" -> 1, "b" -> 2)
特点:支持动态增删键值对。
Scala
object TestSet {
def main(args: Array[String]): Unit = {
//(1)创建可变集合
val map = mutable.Map( "a"->1, "b"->2, "c"->3 )
//(3)向集合增加数据map.+=("d"->4)
// 将数值 4 添加到集合,并把集合中原值 1 返回
val maybeInt: Option[Int] = map.put("a", 4) println(maybeInt.getOrElse(0))
//(4)删除数据map.-=("b", "c")
//(5)修改数据map.update("d",5) map("d") = 5
//(2)打印集合map.foreach((kv)=>{println(kv)})
}
}
六、元组
定义:val tuple = (1, "a", true)
特点:最多支持22个元素,可通过_1、_2访问元素。
Scala
val person = ("John", 30, "Male")
println(person._1) // 输出: John
println(person._2) // 输出: 30
七、集合常用函数
-
基本操作
length、size、foreach、mkString、contains -
衍生集合
head、tail、last、init、reverse、take、drop、union、intersect、diff、zip -
计算函数
sum、product、max、min、sorted、sortBy、sortWith
Scala
object TestList {
def main(args: Array[String]): Unit = {
val list: List[Int] = List(1, 5, -3, 4, 2, -7, 6)
//(1)求和println(list.sum)
//(2)求乘积println(list.product)
//(3)最大值println(list.max)
//(4)最小值println(list.min)
//(5)排序
// (5.1)按照元素大小排序
println(list.sortBy(x => x))
// (5.2)按照元素的绝对值大小排序
println(list.sortBy(x => x.abs))
// (5.3)按元素大小升序排序
println(list.sortWith((x, y) => x < y))
// (5.4)按元素大小降序排序
println(list.sortWith((x, y) => x > y))
}
}