理论教育 Scala语言中的集合类概述与特性

Scala语言中的集合类概述与特性

时间:2023-11-24 理论教育 版权反馈
【摘要】:Set集合类最大的特性就是不允许在其中存放重复的元素。图5-8scala.collection.mutable包中集类的类图在Scala中,基于默认使用不可变集合的规范,在默认导入的Predef类中提供了集的别名等定义,具体代码如下所示:在Predef类中提供了不可变集合类Set的别名,因此在使用时,默认情况下使用的是不可变的集合类。

Scala语言中的集合类概述与特性

在Scala中,使用trait Set[A]来表示集。Set集合类最大的特性就是不允许在其中存放重复的元素。因此,Set可以被用来过滤在其他集合中存放的元素,从而得到一个没有包含重复元素的集合。

下面从两个方面对集进行分析。 1.Set集合的类图 在Scala集合类库中,集同样包含了可变集和不可变集。不可变集的类图如图5-7所示。

978-7-111-54169-1-Chapter05-70.jpg

图5-7 scala.collection.mutable包中集类的类图

可变集的类图如图5-8所示。

978-7-111-54169-1-Chapter05-71.jpg

图5-8 scala.collection.mutable包中集类的类图(www.daowen.com)

在Scala中,基于默认使用不可变集合的规范,在默认导入的Predef类中提供了集的别名等定义,具体代码如下所示:

978-7-111-54169-1-Chapter05-72.jpg

在Predef类中提供了不可变集合类Set的别名,因此在使用时,默认情况下使用的是不可变的集合类。

2.集合中元素不重复的控制 在集Set中,通过对象的==方法来判断元素是否相同,避免集包含相同元素。下面以只包含一个元素的不可变Set的子类Set1为例进行说明。Set1的代码如下所示:

978-7-111-54169-1-Chapter05-73.jpg

对应的Set1中的+操作调用了contains操作,判断是否已经包含重复元素,而contains操作则调用了==方法。当已经包含相同元素时,返回集合本身,否则,构建一个包含两个元素的Set2集合。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈