简介
scala中的集合分为两种,一种是可变的集合,另一种是不可变的集合。
- 可变的集合可以在原集合上进行添加、更新及删除元素。
- 不可变集合一旦被创建便不能被改变,添加、更新及删除操作返回的是新的集合,老集合保持不变。
在scala中,默认使用的都是immutable集合。如果要使用mutable集合,需要在程序中引入。
import scala.collection.mutable
//由于immutable是默认导入的,因此要使用mutable中的集合的话
//使用如下语句
scala> val mutableSet=mutable.Set(1,2,3)
mutableSet: scala.collection.mutable.Set[Int] = Set(1, 2, 3)
//不指定的话,创建的是immutable 集合
scala> val mutableSet=Set(1,2,3)
mutableSet: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
直接使用Set(1,2,3)创建的是immutable集合。这是因为当不引入任何包的时候,scala会默认导入以下几个包:
Predef对象中包含了Set、Map等的定义。
集合类层次结构
- scala.collection包中的集合类层次结构如下图:
- scala.collection.immutable包中的类层次结构:
- scala.collection.mutable包中的类层次结构:
可变集合与不可变集合对应关系
不可变(collection.immutable._) | 可变(collection.mutable._) |
---|---|
Array | ArrayBuffer |
String | StringBuilder |
List | ListBuffer |
List | MutableList |
Array | ArraySeq |
Stack | Stack |
HashSet | HashSet |
HashMap | HashMap |
忠于技术,热爱分享。欢迎关注公众号:java大数据编程,了解更多技术内容。