Scala集合总共分为如下三大类:
* Seq 序列:元素按顺序排列,可以存储重复元素;
* Set 集合:元素无序,元素不重复,提供并、差、交集运算;
* Map 映射:键值对集合
![](https://img.kancloud.cn/c2/02/c2028e160c7b6d58eafb0250320c0cd9_481x443.png)
Seq、Set和Map又分为可变集合与不可变集合:
* 可变集合:<mark>可变</mark>指的是集合中的元素可以改变,至于长度是否可以改变需要根据具体的类进行判断。可变集合都在`scala.collection.mutable`
* 不可变集合:<mark>不可变</mark>指的是集合的长度和元素都不可以改变。不可变集合都在`scala.collection.immutable`包中
* Scala中默认为不可变集合。
常用的不可变集合:
```scala
Set:ListSet、HashSet、TreeSet
Map:ListMap、HashMap、TreeMap
Seq:Vector、String、Range、List、Stack、Stream、Queue
```
:-: ![](https://img.kancloud.cn/16/50/1650919642259753df68bca1fa147e1b_885x687.png)
不可变集合:scala.collection.immutable
![](https://img.kancloud.cn/8d/29/8d2999ce0f0d691fb51005b4fa772891_1497x717.png)
可变集合:scala.collection.mutable
<br/>
:-: **常用集合**
| 名称 | 可变/不可变 | 示例 |
| --- | --- | --- |
| Buffer | mutable | val buffer = scala.collection.mutable.ArrayBuffer[Int](10, 20, 30); buffer+=(2,3)|
| Array | mutable | val arr=Array(1,2,3)|
| List | immutable | val lst=List(1,2,3)|
| Map | mutable | val stu= Map("name" -> "Jason", "age" -> "18")|
| Set | mutable/immutable | val set=Set(1,2,3)|
| Vector | immutable | val v=Vector(1, 3, 5, 7, 11, 13)|
| Stack| mutable/immutable | val st=scala.collection.mutable.Stack(1,2,3) //堆栈,先进后出|
| Queue | mutable/immutable | val q=scala.collection.mutable.Queue(1,2,3) //队列,先进先出|
| BitSet | mutable/immutable | val bit=scala.collection.mutable.BitSet(3,2,0) //位集合|
| ListMap | immutable | val map = scala.collection.immutable.ListMap(1->"one", 2->"two")|
| HashSet | mutable | val set= scala.collection.mutable.HashSet(1,2,3)|
| HashMap | mutable | val stu= scala.collection.mutable.HashMap("name" -> "Jason", "age" -> "18")|
官方文档:https://www.scala-lang.org/api/2.11.12/#scala.collection.immutable.List
- Scala是什么?
- Scala特性
- 开发环境搭建
- 环境搭建
- windows下的环境搭建
- IntelliJ IDEA环境搭建
- Scala关键字
- Hello, World
- 数据类型
- 数据类型
- 数据类型层次结构
- 字面量
- Null类型
- Nothing类型
- Unit类型
- 变量与常量
- type定义类型别名
- 字符串插值器
- 条件控制
- 循环控制
- 数组
- 元组
- 集合
- 集合分类
- List常用操作
- Set常用操作
- Map常用操作
- 函数
- 函数声明与调用
- 函数与方法的区别
- 函数注意事项
- 匿名函数
- 可变参数
- 高阶函数
- 中置表达式
- 函数嵌套
- 函数科里化
- 隐式参数
- 隐式函数
- 闭包
- 类和对象
- Java与Scala的比较
- 有关类与对象概念
- 类
- 类的定义和调用
- 类的继承
- 抽象类
- 单例对象
- 伴生对象和伴生类
- 特质
- 定义特质
- 混入特质
- 抽象类与特质的选择
- 自身类型
- 依赖注入
- this别名
- 样例类
- 枚举类
- 泛型类
- 包与包对象
- 模式匹配
- 基本语法
- 匹配模式
- 偏函数
- 注解
- 运算符
- 正则表达式
- 隐式类
- 异常处理
- 高级类型
- 结构类型
- 复合类型