介绍

集合就相当于是一个容器,是用来存储数据的
Scala 中的集合有两种类型:不可变集合可变集合

所在包:

  • 不可变集合(可以动态改变):scala.collection.immutable
  • 可变集合(不可以动态改变):scala.collection.mutable

✍ Scala 默认使用不可变集合,为什么?【因为不可变集合可以安全地并发访问】

体系

Scala 的集合有三大类,且所有的集合都扩展自 Iterable 特质:

  • 序列 Seq
  • 集 Set
  • 映射 Map

    不可变集合

    image.png
    📝 图示说明

  • SortedMap 表示支持排序

  • IndexedSeq 通过索引来查找和定位,速度快
  • LinearSeq 是线性的,有头尾的概念,需要通过遍历来查找
  • Array 表示定长数组,继承了IndexedSeq 特质

    可变集合

    image.png
    📝 图示说明

  • ArrayBuffer 表示变长数组,继承了

  • 在 Seq 中,增加了 Buffer 集合,常用的有 ArrayBuffer 和 ListBuffer
  • 如果涉及到线程安全的问题,可以选择使用 Synchronized… 开头的集合类