Set集合 短命女 2022-06-07 11:16 225阅读 0赞 Scala `Set`是相同类型成对的不同元素的集合。换句话说,一个集合是不包含重复元素的集合。 集合有两种:不可变(`immutable`)和可变(`mutable`)。可变对象和不可变对象之间的区别在于,当对象不可变时,对象本身无法更改。 默认情况下,Scala使用不可变的集合(`Set`)。 如果要使用可变集合(`Set`),则必须明确导入`scala.collection.mutable.Set`类。 如果要在同一集合中使用可变集合和不可变集合,则可以继续引用不可变集作为集合(`Set`),但可以将可变集合称为`mutable.Set`。 // Empty set of integer type var s : Set[Int] = Set() // Set of integer type var s : Set[Int] = Set(1,3,5,7) // 或者 var s = Set(1,3,5,7) Scala 通过定义一个空集合,类型注释是必要的,因为系统需要将具体的类型分配给变量。 ## 集合基本操作 ## 所有对集合的操作都可以用以下三种方法来表示: <table style="border-collapse:collapse; border-spacing:0px; font-size:14px; border-top:1px solid rgb(221,221,221); border-left:1px solid rgb(221,221,221); width:729px; margin-bottom:18px; color:rgb(51,51,68); font-family:"Helvetica Neue",Helvetica,"PingFang SC",微软雅黑,Tahoma,Arial,sans-serif"> <thead style=""> <tr style=""> <th style="">序号</th> <th style="">方法</th> <th style="">描述</th> </tr> </thead> <tbody style=""> <tr style=""> <td style="">1</td> <td style="">head</td> <td style="">此方法返回列表的第一个元素。</td> </tr> <tr style=""> <td style="">2</td> <td style="">tail</td> <td style="">此方法返回由除第一个之外的所有元素组成的列表。</td> </tr> <tr style=""> <td style="">3</td> <td style="">isEmpty</td> <td style="">如果列表为空,则此方法返回<code style="padding-left:6px; padding-right:6px; font-size:14px; color:rgb(199,37,78); background-color:rgb(249,242,244); margin-left:4px; margin-right:4px; font-family:Menlo,Monaco,Consolas,"Courier New",monospace">true</code>,否则返回<code style="padding-left:6px; padding-right:6px; font-size:14px; color:rgb(199,37,78); background-color:rgb(249,242,244); margin-left:4px; margin-right:4px; font-family:Menlo,Monaco,Consolas,"Courier New",monospace">false</code>。</td> </tr> </tbody> </table> 以下示例显示如何使用上述方法。 示例 object Demo { def main(args: Array[String]) { val fruit = Set("apples", "oranges", "pears") val nums: Set[Int] = Set() println( "Head of fruit : " + fruit.head ) println( "Tail of fruit : " + fruit.tail ) println( "Check if fruit is empty : " + fruit.isEmpty ) println( "Check if nums is empty : " + nums.isEmpty ) } } Scala 将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。 D:\>scalac Demo.scala D:\>scala Demo Head of fruit : apples Tail of fruit : Set(oranges, pears) Check if fruit is empty : false Check if nums is empty : true Scala ## 连接集合 ## 您可以使用`++`运算符或`Set.++()`方法连接两个或多个集合,但是在添加集合时,它将删除重复的元素。 以下是连接两个集合的例子 - object Demo { def main(args: Array[String]) { val fruit1 = Set("apples", "oranges", "pears") val fruit2 = Set("mangoes", "banana") // use two or more sets with ++ as operator var fruit = fruit1 ++ fruit2 println( "fruit1 ++ fruit2 : " + fruit ) // use two sets with ++ as method fruit = fruit1.++(fruit2) println( "fruit1.++(fruit2) : " + fruit ) } } Scala 将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。 D:\>scalac Demo.scala D:\>scala Demo fruit1 ++ fruit2 : Set(banana, apples, mangoes, pears, oranges) fruit1.++(fruit2) : Set(banana, apples, mangoes, pears, oranges) Scala ## 在集合中查找最大值,最小元素 ## 可以使用`Set.min`方法和`Set.max`方法来分别找出集合中元素的最大值和最小值。 以下是显示程序的示例。 object Demo { def main(args: Array[String]) { val num = Set(5,6,9,20,30,45) // find min and max of the elements println( "Min element in Set(5,6,9,20,30,45) : " + num.min ) println( "Max element in Set(5,6,9,20,30,45) : " + num.max ) } } Scala 将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。 D:\>scalac Demo.scala D:\>scala Demo Min element in Set(5,6,9,20,30,45) : 5 Max element in Set(5,6,9,20,30,45) : 45 Scala ## 查找交集值 ## 可以使用`Set.&`或`Set.intersect`方法来查找两个集合之间的交集(相交值)。尝试以下示例来显示用法。 object Demo { def main(args: Array[String]) { val num1 = Set(5,6,9,20,30,45) val num2 = Set(50,60,9,20,35,55) // find common elements between two sets println( "num1.&(num2) : " + num1.&(num2) ) println( "num1.intersect(num2) : " + num1.intersect(num2) ) } } Scala 将上述程序保存在源文件:Demo.scala中,使用以下命令编译和执行此程序。 D:\>scalac Demo.scala D:\>scala Demo num1.&(num2) : Set(20, 9) num1.intersect(num2) : Set(20, 9)
相关 集合set 35个问题测试你对Python集合的认识 如何通过掌握集合的基本原理来压制算法问题 图片来自Pexels的Andrea Piacquadio 在我追求掌握面试算法的过程中,我 ╰半夏微凉°/ 2024年04月06日 13:19/ 0 赞/ 93 阅读
相关 set集合 目录 1,set集合的特点: 1.1,set集合添加的数据不可重复 1.2 hashset无序 Treeset有序 1.2.1set集合的遍历方法 1.2.2Tree 我就是我/ 2024年03月16日 18:50/ 0 赞/ 71 阅读
相关 集合——Set Set接口 1.set接口的主要实现类有HashSet和 TreeSet 2.HashSet是基于哈希表实现的,数据是无序的, HashSet元素可以是null,但只 逃离我推掉我的手/ 2023年01月21日 05:30/ 0 赞/ 149 阅读
相关 Set集合 Scala `Set`是相同类型成对的不同元素的集合。换句话说,一个集合是不包含重复元素的集合。 集合有两种:不可变(`immutable`)和可变(`mutable`)。可变 短命女/ 2022年06月07日 11:16/ 0 赞/ 226 阅读
相关 Set集合 简介 > 无序,不可重复的集合 HashSet ①、HashSet:不能保证元素的顺序;不可重复;不是线程安全的;集合元素可以为 NULL; ②、对于 Has 柔光的暖阳◎/ 2022年05月28日 23:40/ 0 赞/ 213 阅读
相关 集合 set 集合 set :去重复,做操作 .add 是增加一个整体,如add('op')是加'op'.update 是增加一个一个的字符是加 o和p in ,no 超、凢脫俗/ 2022年02月23日 10:45/ 0 赞/ 291 阅读
相关 set集合 概述 Set接口继承Collection Set接口常用实现类 1. HashSet 实现了 Set 接口 “它不保证 set 的迭代顺序;特别是它不保证 Bertha 。/ 2022年01月22日 08:39/ 0 赞/ 302 阅读
相关 集合 SET 集合 SET 定义: 只有键没有值的字典,保留无序的元素,没有索引。集合的元素不可变。 创建: 1.set\_1 = set(seq) 2.set\_2 太过爱你忘了你带给我的痛/ 2021年12月05日 05:13/ 0 赞/ 380 阅读
相关 Set(集合) ''' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。 {} ''' set1 = set({1, ゝ一世哀愁。/ 2021年11月17日 22:38/ 0 赞/ 382 阅读
相关 集合Set 集合的一个关键的特点就是不能存放重复的元素,二分搜索树是一个非常好的实现集合的底层数据结构 1、二分搜索树实现集合: ![在这里插入图片描述][watermark_ty 川长思鸟来/ 2021年09月23日 22:14/ 0 赞/ 409 阅读
还没有评论,来说两句吧...