Set(集)是代表没有重复元素的集合
- 元素不重复
- 不保证插入顺序
不可变Set集
语法
创建一个空的不可变的集
var/val 变量名 = Set[类型]()
给定元素来创建一个不可变集
var/val 变量名 = Set(元素1,元素2,元素3....)
示例一
定义一个空的不可变集
参考代码
scala> var a=Set[Int]()
a: scala.collection.immutable.Set[Int] = Set()
示例二
定义一个不可变得集,保存一下元素:1,1,22,3,3,3,3,1,2,3,4,5,6
scala> var b=Set(1,1,22,3,3,3,3,1,2,3,4,5,6)
b: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 22, 3, 4)
基本操作
- 获取集的大小(size)
- 遍历集(和遍历数组一致)
- 添加一个元素,生成一个set(+)
- 拼接两个集,生成一个set(++)
- 拼接集合列表,生成一个set(++)
参考代码
定义set集合
scala> var a=Set(1,2,3,4,5,6,7)
a: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 4)
获取集合的大小
scala> a.size
res0: Int = 7
遍历集合
scala> for (s <- a){
println(s)
}
添加一个元素
scala> a + 10
res2: scala.collection.immutable.Set[Int] = Set(5, 10, 1, 6, 2, 7, 3, 4)
拼接一个集合
scala> a ++ Set(11,22,33)
res3: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 33, 2, 22, 7, 3, 11, 4)
拼接一个列表
scala> a ++ List(22,33,44)
res4: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 33, 2, 22, 44, 7, 3, 4)
可变Set集
定义
可变集合不可变的创建方式一致,只不过需要提前导入一个可变集类 手动导入: import scala.collection.mutable.Set
参考代码
import scala.collection.mutable.Set
创建可变集
scala> var b=Set(1,2,3,4)
b: scala.collection.mutable.Set[Int] = Set(1, 2, 3, 4)
添加元素
scala> b+=5
res5: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 3, 4)
删除元素
scala> b -= 1
res6: scala.collection.mutable.Set[Int] = Set(5, 2, 3, 4)
映射
map可以称之为映射。他是由键值对组成集合,
不可变Map
语法
var/val map = Map(键->值,键->值,键->值...)
val/var map=Map((键,值),(键,值),(键,值)....)
参考代码
方式一 定义map
scala> var map=Map("zhangsan"->12,"lisi"->20)
map: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 12, lisi -> 20)
方式二 定义map
scala> var map2=Map(("zhangsan",18),("lisi",20))
map2: scala.collection.immutable.Map[String,Int] = Map(zhangsan -> 18, lisi -> 20)
根据key 获取value
scala> map.get("zhangsan")
res1: Option[Int] = Some(18)
修改
scala> map("zhangsan")=2
<console>:13: error: value update is not a member of scala.collection.immutable.Map[String,Int]
map("zhangsan")=2
可变Map
定义
定义语法与不可变Map一致,但定义可变map需要手动导入 import scala.collection.mutable.Map
定义可变map
scala> var map3=Map("zhangsan"->19)
map3: scala.collection.mutable.Map[String,Int] = Map(zhangsan -> 19)
修改
scala> map3("zhangsan")=20
基本操作
- 获取值(map(key))
- 获取所有key(map.keys)
- 获取所有value(map.values)
- 遍历map集合
- getOrElse
- 增加key,value对
- 删除key
参考代码
创建可变map
import scala.collection.mutable.Map
scala> var map=Map("zhangsan"->12,"lisi"->20)
map: scala.collection.mutable.Map[String,Int] = Map(lisi -> 20, zhangsan -> 12)
获取值
scala> map.get("zhangsan")
res0: Option[Int] = Some(12)
获取所有key
scala> map.keys
res1: Iterable[String] = Set(lisi, zhangsan)
获取所有value
scala> map.values
res2: Iterable[Int] = HashMap(20, 12)
遍历map
scala> for ((k,v) <- map){
println(s"${k} ${v}")
}
获取value不存在返回一个默认值
scala> map.getOrElse("zhangsan",1)
res4: Int = 12
scala> map.getOrElse("zhangsa1n",1)
res5: Int = 1
添加k v
scala> map.+=("wangwu"->122)
res6: scala.collection.mutable.Map[String,Int] = Map(lisi -> 20, zhangsan -> 12, wangwu -> 122)
删除
scala> map.-=("wangwu")
res7: scala.collection.mutable.Map[String,Int] = Map(lisi -> 20, zhangsan -> 12)