理论教育 Scala容器详解和应用

Scala容器详解和应用

时间:2023-06-14 理论教育 版权反馈
【摘要】:Scala 有一个非常通用,丰富强大,可组合的容器库,整体架构也比较复杂。从图7-21 可以看出Scala 的容器类都是从Traversable 和Iterable 这两个特质开始的,然后分为三大类,分别是Seq,Set 和Map。Traversable 为所有容器类定义了foreach 来对容器元素进行遍历操作。图7-21Scala 容器库根据容器中元素的组织方式和操作方式,可以分为有序和无序,可变和不可变等不同的容器。默认情况下,Scala 采用不可变容器类。

Scala容器详解和应用

Scala 有一个非常通用,丰富强大,可组合的容器库,整体架构也比较复杂。从图7-21 可以看出Scala 的容器类都是从Traversable 和Iterable 这两个特质(trait)开始的,然后分为三大类,分别是Seq,Set 和Map。Traversable 为所有容器类定义了foreach 来对容器元素进行遍历操作。

图7-21 Scala 容器库(www.daowen.com)

根据容器中元素的组织方式和操作方式,可以分为有序和无序,可变和不可变等不同的容器。可变集合可以在适当的地方被更新或扩展。这意味着可以修改,添加,移除一个集合的元素。而不可变集合类永远不会改变,不过仍然可以模拟添加,移除或更新操作,但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变。Scala 可变容器类主要有ArrayBuffer,ListBuffer,StringBuilder,LinkedList,DoubleLinkedList,MutableList,Queue,ArraySeq,ArrayStack,HashMap和HashSet;不可变容器类有Array,List,String,Stack,HashMap 和HashSet。

默认情况下,Scala 采用不可变容器类。例如,仅声明了Set 会得到一个不可变的Set。如果想要使用可变容器类,就需要通过collection.mutable.Iterable 显式的声明。

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

我要反馈