快速入门Scala⑧ 对Set与Map操作

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)

1

发布了88 篇原创文章 · 获赞 99 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_43791724/article/details/105160514