scala學習筆記 集合

2022-02-14 07:11:31 字數 1322 閱讀 1696

變長陣列:陣列緩衝

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)

對映

元組

Scala基礎學習 scala集合 005

定長陣列 println test val a new array string 5 a.length a 0 hello 賦值 a 1 取值 b 1 flink 可以修改值,並沒有修改指標 val c array 1,2,3,4,5,6 c.mkstring 轉換為字串 c.mkstring c....

Scala學習筆記

scala學習筆記 一.scala中集合的常用方法 首先定義兩個陣列集合,用於測試 scala val arr1 array 1,2,3,4 arr1 array int array 1,2,3,4 scala val arr2 array 3,4,5,6 arr2 array int array ...

Scala學習筆記

1 閉包 var a 3 var addfun x int x a var b addfun 10 println b addfun 就是個和物件無關的函式,區域性變數,使用方法和函式一樣,但是好像不推薦這種寫法。2 類的建立,簡單使用abstract class bparent 構造函式引數會自動...