scala学习笔记-集合

时间:2022-01-07 19:42:50

变长数组:数组缓冲

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)

映射

元组