云应用开发类企业案例Scala集合scala集合.docxVIP

  • 2
  • 0
  • 约6.6千字
  • 约 12页
  • 2021-08-18 发布于北京
  • 举报

云应用开发类企业案例Scala集合scala集合.docx

PAGE4 / NUMPAGES4 Scala集合 一、集合简介 Scala 中拥有多种集合类型,主要分为可变的和不可变的集合两大类: 可变集合: 可以被修改。即可以更改,添加,删除集合中的元素; 不可变集合类:不能被修改。对集合执行更改,添加或删除操作都会返回一个新的集合,而不是修改原来的集合。 二、集合结构 Scala 中的大部分集合类都存在三类变体,分别位于?scala.collection,?scala.collection.immutable,?scala.collection.mutable?包中。还有部分集合类位于?scala.collection.generic?包下。 scala.collection.immutable?:包是中的集合是不可变的; scala.collection.mutable?:包中的集合是可变的; scala.collection?:包中的集合,既可以是可变的,也可以是不可变的。 val sortSet = scala.collection.SortedSet(1, 2, 3, 4, 5) val mutableSet = collection.mutable.SortedSet(1, 2, 3, 4, 5) val immutableSet = collection.immutable.SortedSet(1, 2, 3, 4, 5) 如果仅写了?Set?而没有加任何前缀也没有进行任何?import,则 Scala 默认采用不可变集合类。 scala Set(1,2,3,4,5) res0: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4) 2.1 scala.collection scala.collection 包中所有集合如图1所示: 图1 Collection集合 2.2 scala.collection.mutable scala.collection.mutable 包中所有集合如图2: 图2 scala.collection.mutable 2.3 scala.collection.immutable scala.collection.immutable 包中所有集合如图3所示: 图3 scala.collection.immutable 三、Trait Traversable Scala 中所有集合的顶层实现是?Traversable?。它唯一的抽象方法是?foreach: def foreach[U](f: Elem = U) 实现?Traversable?的集合类只需要实现这个抽象方法,其他方法可以从?Traversable?继承。Traversable?中的所有可用方法如表1: 方法 作用 Abstract Method: xs foreach f 为 xs 的每个元素执行函数 f Addition: xs ++ ys 一个包含 xs 和 ys 中所有元素的新的集合。 ys 是一个 Traversable 或 Iterator。 Maps: xs map f 对 xs 中每一个元素应用函数 f,并返回一个新的集合 xs flatMap f 对 xs 中每一个元素应用函数 f,最后将结果合并成一个新的集合 xs collect f 对 xs 中每一个元素调用偏函数 f,并返回一个新的集合 Conversions: xs.toArray 将集合转化为一个 Array xs.toList 将集合转化为一个 List xs.toIterable 将集合转化为一个 Iterable xs.toSeq 将集合转化为一个 Seq xs.toIndexedSeq 将集合转化为一个 IndexedSeq xs.toStream 将集合转化为一个延迟计算的流 xs.toSet 将集合转化为一个 Set xs.toMap 将一个(key, value)对的集合转化为一个 Map。 如果当前集合的元素类型不是(key, value)对形式, 则报静态类型错误。 Copying: xs copyToBuffer buf 拷贝集合中所有元素到缓存 buf xs copyToArray(arr,s,n) 从索引 s 开始,将集合中最多 n 个元素复制到数组 arr。 最后两个参数是可选的。 Size info: xs.isEmpty 判断集合是否为空 xs.nonEmpty 判断集合是否包含元素 xs.size 返回集合中元素的个数 xs.hasDefiniteSize 如果 xs 具有有限大小,则为真。 Element Retrieval: xs.head 返回集合中的第一个元素(如果无序,则随机返回) xs.headO

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档