1. Set
- 无序丶唯一 和Java中类似
- 可变丶不可变两种
不可变集:
语法:
1) 创建一个空的不可变集,语法格式:
val/var 变量名 = Set[类型]()
2) 给定元素来创建一个不可变集,语法格式:
val/var 变量名 = Set(元素1, 元素2, 元素3...)
- 不可变集基本操作:
- 获取集的大小(size)
- 遍历集(和遍历数组一致)
- 添加一个元素,生成一个Set(+)
- 拼接两个集,生成一个Set(++)
- 拼接集和列表,生成一个Set(++)
//定义
scala> val a = Set(15000,18000,20000,25000)
a: scala.collection.immutable.Set[Int] = Set(15000, 18000, 20000, 25000)
//获取长度
scala> a.size
res19: Int = 4
//遍历
scala> for(i<-a)println(i)
15000
18000
20000
// 拼接两个集
scala> a ++ Set(6,7,8)
res2: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 8, 4)
// 拼接集和列表
scala> a ++ List(6,7,8,9)
res6: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 9, 2, 7, 3, 8, 4)
可变集: 操作和可变集一样,就是需要导包 import scala.collection.mutable.Set
2. 映射
- Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。
不可变Map:
语法:
val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好
val/var map = Map((键, 值), (键, 值), (键, 值), (键, 值)...)
看例子:
scala> val map = Map("liuafu"->23,"hurong"->23)
map: scala.collection.immutable.Map[String,Int] = Map(liuafu -> 23, hurong -> 23)
//根据键获取值
scala> map("liuafu")
res24: Int = 23
可变Map: 定义语法与不可变Map一致。但定义可变Map需要手动导入import scala.collection.mutable.Map
关于Map的基本操作:
- 获取值(map(key))
- 获取所有key(map.keys)
- 获取所有value(map.values)
- 遍历map集合
- getOrElse
- 增加key,value对 +
- 删除key -
scala> val map = Map("liuafu"->23,"hurong"->23)
map: scala.collection.immutable.Map[String,Int] = Map(liuafu -> 23, hurong -> 23)
//获取值
scala> map("liuafu")
res24: Int = 23
//获取所有key
scala> map.keys
res25: Iterable[String] = Set(liuafu, hurong)
//获取所有值
scala> map.values
res26: Iterable[Int] = MapLike(23, 23)
//打印所有的学生姓名和年龄
scala> for((x,y) <- a) println(s"$x $y")
lisi 40
zhangsan 30
3. iterator迭代器
- 和Java中的一样
scala> val a = List(18000,20000,22000)
a: List[Int] = List(18000, 20000, 22000)
scala> a.iterator
res29: Iterator[Int] = non-empty iterator
scala> for(i <- a)println(i)
18000
20000
22000