2021年大数据常用语言Scala(十七):基础语法学习 Set

举报
Lansonli 发表于 2021/09/27 22:06:03 2021/09/27
【摘要】 目录 Set 不可变集 可变集 Set Set(集)是代表没有重复元素的集合。Set具备以下性质: 元素不重复 不保证插入顺序 和List正好相反, List: 元素可以重复 保证插入顺序 scala中的集也分为两种,一种是不可变集,另一种是可变集。   不可变集 定义 语法 创建一个空的不可...

目录

Set

不可变集

可变集


Set

Set(集)是代表没有重复元素的集合。Set具备以下性质:

元素不重复

不保证插入顺序

和List正好相反, List:

元素可以重复

保证插入顺序

scala中的集也分为两种,一种是不可变集,另一种是可变集。

 

不可变集

定义

语法

创建一个空的不可变集,语法格式:

val/var 变量名 = Set[类型]()

 

给定元素来创建一个不可变集,语法格式:

val/var 变量名 = Set(元素1, 元素2, 元素3...)

 

示例一

定义一个空的不可变集

参考代码


  
  1. scala> val a = Set[Int]()
  2. a: scala.collection.immutable.Set[Int] = Set()

 

示例二

定义一个不可变集,保存以下元素:1,1,3,2,4,8

参考代码


  
  1. scala> val a = Set(1,1,3,2,5,9)
  2. a: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 9, 5)
  3. // 可以看到 1. 去重了 2. 顺序乱了   这些就是Set的特性

 

基本操作

  • 获取集的大小(size)
  • 遍历集(和遍历数组一致)
  • 添加一个元素,生成一个Set(+)
  • 拼接两个集,生成一个Set(++)
  • 拼接集和列表,生成一个Set(++)

 

示例

创建一个集,包含以下元素:1,1,2,3,4,5

获取集的大小

遍历集,打印每个元素

删除元素1,生成新的集

拼接另一个集(6, 7, 8)

拼接一个列表(6,7,8, 9)

 

参考代码


  
  1. // 创建集
  2. scala> val a = Set(1,1,2,3,4,5)
  3. a: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4)
  4. // 获取集的大小
  5. scala> a.size
  6. res0: Int = 5
  7. // 遍历集
  8. scala> for(i <- a) println(i)
  9. // 删除一个元素
  10. scala> a - 1
  11. res5: scala.collection.immutable.Set[Int] = Set(5, 2, 3, 4)
  12. // 拼接两个集
  13. scala> a ++ Set(6,7,8)
  14. res2: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 8, 4)
  15. // 拼接集和列表
  16. scala> a ++ List(6,7,8,9)
  17. res6: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 9, 2, 7, 3, 8, 4)
  18. // 注意, 每次对a的操作, 都是生成了一个新的Set, a自身是不会变化的. 不仅仅指a是不可变集, 同时a 也是val定义的
  19. // 如果是var 定义的
  20. scala> var a = Set(1, 2, 3, 4, 5)
  21. a: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4)
  22. scala> a = a + 6
  23. a: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 3, 4)
  24. scala> a
  25. res13: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 3, 4)
  26. // 实际上a 虽然+ 1 ,但是操作前后的两个a 不是同一个对象.
  27. // Set是不可变的, 如果+1 就是生成了新的Set ,同时因为a是var定义的, 所以就可以重新将这个新生成的结果赋值给a, 原本a的内容就抛弃了.

 

可变集

定义

可变集合不可变集的创建方式一致,只不过需要提前导入一个可变集类。

手动导入:import scala.collection.mutable.Set

 

示例

定义一个可变集,包含以下元素: 1,2,3, 4

添加元素5到可变集中

从可变集中移除元素1

 

参考代码


  
  1. scala> val a = Set(1,2,3,4)
  2. a: scala.collection.mutable.Set[Int] = Set(1, 2, 3, 4)                          
  3. // 添加元素
  4. scala> a += 5
  5. res25: a.type = Set(1, 5, 2, 3, 4)
  6. // 删除元素
  7. scala> a -= 1
  8. res26: a.type = Set(5, 2, 3, 4)

 

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/116444431

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。