Scala中的集合之Set丶映射

1. Set

  • 无序丶唯一 和Java中类似
  • 可变丶不可变两种

不可变集:

语法:
1) 创建一个空的不可变集,语法格式:
val/var 变量名 = Set[类型]()

2) 给定元素来创建一个不可变集,语法格式:
val/var 变量名 = Set(元素1, 元素2, 元素3...)
  • 不可变集基本操作:
  1. 获取集的大小(size)
  2. 遍历集(和遍历数组一致)
  3. 添加一个元素,生成一个Set(+)
  4. 拼接两个集,生成一个Set(++)
  5. 拼接集和列表,生成一个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的基本操作:

  1. 获取值(map(key))
  2. 获取所有key(map.keys)
  3. 获取所有value(map.values)
  4. 遍历map集合
  5. getOrElse
  6. 增加key,value对 +
  7. 删除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

猜你喜欢

转载自blog.csdn.net/m0_49834705/article/details/112686509
今日推荐