当前位置: 首页 > news >正文

3 scala集合-Set

与 Java 的 Set 一样,scala 的 set 中,元素都是唯一的,而且遍历 set 中集合的顺序,跟元素插入的顺序是不一样的。

同样,Set 也包含可变和不可变两种。要实现可变 Set 集合,需要使用类 scala.collection.mutable.Set

1 不可变 Set

创建不可变 Set 的语法如下:

// 创建一个不可变 Set
val/var variable_name = Set[类型]()
// 创建一个带初始化元素的不可变 Set
val/var variable_name = Set[类型](ele1, ele2, ele3, ...)

创建一个不可变 Set 集合

scala> val set = Set("Hello", "Scala", "Java", "JVM", "USA", "China")
val set: Set[String] = HashSet(JVM, USA, Scala, China, Hello, Java)

2 可变 Set

2.1 添加新元素到 Set

下面例子,定义了一个可变 Set,并添加新的元素到集合中:

scala> import scala.collection.mutable.Setscala> val set = Set[String]("Hello", "Scala", "And", "Java", "!!!")
val set: scala.collection.mutable.Set[String] = HashSet(!!!, Java, Hello, And, Scala)scala> set += "Spark"
val res1: scala.collection.mutable.Set[String] = HashSet(!!!, Java, Hello, And, Scala, Spark)

2.2 移除其中一个元素

下面例子,定义了一个可变 Set 集合,并移除其中的一个元素:

scala> val set = Set("Hadoop", "Hive", "Spark", "Flink")
val set: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink, Hadoop)scala> set -= "Hadoop"
val res2: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink)

3 Set 常用操作

3.1 获取 Set 大小

通过 size 属性,可以获取 Set 集合包含的元素个数:

scala> import scala.collection.mutable.Setscala> val set = Set("Hadoop", "Hive", "Spark", "Flink")
val set: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink, Hadoop)scala> set.size
val res3: Int = 4

3.2 遍历 Set

与数组一样,使用 for 循环就可以遍历 Set:

scala> import scala.collection.mutable.Setscala> val set = Set("Hadoop", "Hive", "Spark", "Flink")
val set: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink, Hadoop)scala> for(i <- set)|    println(i)|
Hive
Spark
Flink
Hadoop

3.3 添加一个元素,生成一个新 Set

使用运算符 +,可以添加一个元素,并把结果生成一个新的 Set 集合对象:

scala> import scala.collection.mutable.Setscala> val set = Set("Hadoop", "Hive", "Spark", "Flink")
val set: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink, Hadoop)scala> val set1 = set + "Yarn"
val set1: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Yarn, Flink, Hadoop)scala> set1
val res4: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Yarn, Flink, Hadoop)scala> set
val res5: scala.collection.mutable.Set[String] = HashSet(Hive, Spark, Flink, Hadoop)

3.4 拼接集合

使用运算符 ++ 可以拼接两个 Set 集合,并生成新的 Set 集合:

scala> import scala.collection.mutable.Setscala> val set = Set("Hdfs", "Hadoop")
val set: scala.collection.mutable.Set[String] = HashSet(Hdfs, Hadoop)scala> val set1 = Set("Hadoop", "Yarn")
val set1: scala.collection.mutable.Set[String] = HashSet(Yarn, Hadoop)scala> val setCombined = set ++ set1
val setCombined: scala.collection.mutable.Set[String] = HashSet(Hdfs, Yarn, Hadoop)

除了拼接 Set 集合外,还可以拼接一个 Set 集合和一个 List 集合:

scala> import scala.collection.mutable.Setscala> val set = Set("Hdfs", "Hadoop")
val set: scala.collection.mutable.Set[String] = HashSet(Hdfs, Hadoop)scala> val list = List("Hadoop", "Yarn")
val list: List[String] = List(Hadoop, Yarn)scala> val setCombined = set ++ list
val setCombined: scala.collection.mutable.Set[String] = HashSet(Hadoop, Hdfs, Yarn)
http://www.lryc.cn/news/297517.html

相关文章:

  • Android应用图标微技巧,8.0系统中应用图标的适配
  • java学习(多态)
  • [UI5 常用控件] 07.SplitApp,SplitContainer
  • MyBatisPlus之分页查询及Service接口运用
  • 对象存储minio
  • 大模型学习笔记二:prompt工程
  • MATLAB实现LSTM时间序列预测
  • Kubernetes CNI Calico:Route Reflector 模式(RR) calico IPIP切换RR网络模式
  • 探索Gin框架:Golang Gin框架请求参数的获取
  • 极值图论基础
  • word导出链接
  • (delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.5节(重载和模糊调用)
  • ElementUI Data:Table 表格
  • 11.2 OpenGL可编程顶点处理:细分着色器
  • 微软正在偷走你的浏览记录,Edge浏览器偷疯了
  • 什么是数据库软删除,什么场景下要用软删除?(go GORM硬删除)
  • 计算机设计大赛 深度学习+python+opencv实现动物识别 - 图像识别
  • 我主编的电子技术实验手册(02)——仪表与电源
  • C语言----内存函数
  • 【力扣】快乐数,哈希集合 + 快慢指针 + 数学
  • c实现顺序表
  • 微软为新闻编辑行业推出 AI 辅助项目,记者参加免费课程
  • openssl3.2 - exp - buffer to BIO
  • Android 13.0 系统framework修改低电量关机值为3%
  • 【EAI 013】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning
  • 一文讲透ast.literal_eval() eval() json.loads()
  • 微软.NET6开发的C#特性——类、结构体和联合体
  • naiveui 上传图片遇到的坑 Upload
  • 安全之护网(HVV)、红蓝对抗
  • Leetcode 213 打家劫舍 II