scala学习笔记-集合

 

变长数组:数组缓冲

Scala中对于那种长度会变的数组的数据结构为ArrayBuffer。

    import scala.collection.mutable.ArrayBuffer;
    // 一个空的数组缓冲,准备存放整数
    val array_buffer = ArrayBuffer[Int]();  // 或者 new ArrayBuffer[Int]

    array_buffer += 1; // 结果为:ArrayBuffer(1)

    // 用+=在尾端添加元素
    array_buffer += (1, 2, 3, 5); // 结果为:ArrayBuffer(1, 1, 2, 3, 5)

    // 在尾端添加多个元素,以括号包起来,你可以用++=操作符追加任何集合
    array_buffer ++= Array(8, 13, 21);  // 结果为:ArrayBuffer(1, 1, 2, 3, 5,  8, 13, 21)

    // 移除最后5个元素
    array_buffer.trimEnd(5); // 结果为:ArrayBuffer(1, 1, 2)

    /*
    在数组缓冲的尾端添加或移除元素是一个高效(“amortized constant time”)的操作。
    你也可以在任意位置插入或移除元素,但这样的操作并不那么高效——所有在那个位置之后的元素都必须被平移。举例如下:
    */
    array_buffer.insert(2, 6); // 结果为:ArrayBuffer(1, 1,  6, 2)

    // 在下标2之前插入,你可以插入任意多的元素
    array_buffer.insert(2, 7, 8, 9); // 结果为:ArrayBuffer(1, 1,  7, 8, 9 , 6, 2)

    array_buffer.remove(2); // ArrayBuffer(1, 1, 8, 9, 6, 2)

    // 第2个参数的含义是要移除多少个元素
    array_buffer.remove(2, 3); // ArrayBuffer(1, 1, 2)

    /*有时你需要构建一个Array,但不知道最终需要装多少元素。在这种情况下,先构建一个数组缓冲,然后调用:
    反过来,调用a.toBuffer可以将一个数组a转换成一个数组缓冲
    */
    array_buffer.toArray; // Array(1, 1, 2)

 

 映射

 

元组

posted @ 2016-06-18 14:00  suinlove  阅读(169)  评论(0编辑  收藏  举报