zoukankan      html  css  js  c++  java
  • scala集合-collection

    参考:https://www.jianshu.com/p/69bff3c7ec97

        

    Scala的集合类可以从三个维度进行切分:

    可变与不可变集合(Immutable and mutable collections)

    静态与延迟加载集合 (Eager and delayed evaluation )

    串行与并行计算集合(Sequential and parallel evaluation )

     

    ransformation,集合中有大量的操作都是把一个集合“转换”成另一个集合,比如map,filter等等。而Eager和Delayed集合的区别在于:Eager集合总是立即为元素分配内存,当遇到一个transform动作时,Eager的集合会直接计算并返回结果,而Delayed集合则会尽可能晚的推迟执行,直到必须返回结果时才去执行。这一点和Spark RDD操作中的transformation和action非常类似。

    在现有的集合里,只有Stream是Lasy的,所有其他的集合都是静态(Eager)加载的。但是你可以很容易地把一个静态集合转换成lazy的,那就是创建一个view

    Immutable Seq主要分两大类:indexed sequences和linear sequences
    indexed sequences暗示本类集合在随机读取方面有较高的性能(类似数据结构中的数组)。
    linear sequences暗示本类集合在head和tail操作和顺序遍历上更有优势(类似于数据结构中的双向列表
    在使用Immutable Seq时,默认使用的具体类是List, 使用IndexedSeq时默认使用的具体类是Vector.
    scala> val seq = Seq(1,2,3)
    seq: Seq[Int]
    = List(1,2,3) scala> val indexedSeq = IndexedSeq(1,2,3) indexedSeq: IndexedSeq[Int]= Vector(1,2,3)

    如何选择集合类

    各种Immutable Sequence的特性比较

     各种Mutable Sequence的特性比较

     各种Map的特性比较

     各种Set的特性比较

    Scala Standard Library 2.13.1: scala collection
    https://www.scala-lang.org/api/current/scala/collection/index.html

    Package Members

    1. package concurrent
    2. package convert
    3. package generic
    4. package immutable
    5. package mutable

     

    import scala.collection.mutable.ListBuffer  // 可变长集合

    map操作

    https://www.cnblogs.com/zhaohadoopone/p/9534242.html

  • 相关阅读:
    linux安装memcache及memcache扩展
    jsop
    用户权限集中管理方案
    linux系统优化配置
    APICloud
    laravel中使用mgirations创建和迁移数据库
    无限分类
    laravel中的验证及利用uploadify上传图片
    Laravel框架数据库CURD操作、连贯操作使用方法
    php 将二维数组批量插入到数据库中
  • 原文地址:https://www.cnblogs.com/xl717/p/12752690.html
Copyright © 2011-2022 走看看