陣列Array的基本操作,高階操作,多維陣列

2021-08-13 08:22:45 字數 1419 閱讀 2684

在其他語言中,陣列array是在記憶體中開闢一段連續的記憶體,一旦宣告之後大小不在可變,scala中也是如此,當然scala也提供了長度可變的快取陣列,匯入scala.collection.mutable.arraybuffer包即可使用快取陣列arraybuffer,對arraybuffer的操作非常靈活,可以直接用+=新增若干個元素,也可以新增一整個普通陣列array,但此時要使用++=

def

main

(args: array[string]): unit =

arraybuffer對外提供了很多操作方法:

trimend(n: int): 刪除最後n個元素

insert(n: int, elems: int*):在指定下標n之後插入可變引數傳進來的值

remove(n: int): 刪除指定下標n的元素

remove(n: int, count: int):刪除指定下標n及之後共count個元素

def

main

(args: array[string]): unit =

sorted[b >: a](implicit ord: ordering[b]): 不傳引數可以實現預設的公升序排序,排序規則可通過引數傳入,特別要注意因為陣列是不可變的,所以排完序後會返回乙個新的陣列,要賦給乙個新變數儲存

也可以通過 scala.util.sorting包下的quicksort工具方法進行排序,該方法返回值為unit,會直接對你原來陣列中的值進行操作

def

main

(args: array[string]): unit =

對普通陣列array的操作,我們可以在for迴圈裡通過yield關鍵字在不改變原來陣列的情況下,構造符合我們條件要求的陣列,也可以通過在for語句中if過濾掉陣列中的一些元素,也可以通過filter來過濾,map來構造新陣列

def

main

(args: array[string]): unit =

多維陣列的操作也是普遍會遇到的,特別是二維的矩陣操作,我們可以通過var matrix=array.ofdim【int】(3,4)建立乙個3行4列的矩陣(下標從0開始),通過matrix(i)(j)訪問對應行標列標的元素,注意matrix的length返回的是二維陣列的行數,三維陣列的建立也是類似,length返回第一維的長度

def

main

(args: array[string]): unit =

多維陣列我們還可以通過另一種方法實現,通過將一維陣列中的每個元素的值也是乙個陣列

def

main

(args: array[string]): unit =

Array的基本操作

1 合併操作 concat var c a.concat b 用a陣列合併b陣列,生成新的c陣列。迴圈插入 使用 array push 方法 將陣列 b 插入 q for var i 0 i b.length i 使用array reduce 方法 b onto q q b.reduce funct...

Array的基本操作

準備餓補基礎技術,先來個陣列的總結。1 合併操作 concat var c a.concat b 用a陣列合併b陣列,生成新的c陣列。迴圈插入 使用array push 方法 將陣列 b 插入 q for var i 0 i b.length i 使用array reduce 方法 b onto q...

Array 陣列物件的基本用法

陣列物件是乙個物件的集合,裡邊的物件可以是不同型別的。陣列的每乙個成員物件都有乙個 下標 用來表示它在陣列中的位置,注意 位置 是從零開始的。陣列的定義方法 var 陣列名 new array 這樣就定義了乙個空陣列。以後要新增陣列元素,就用 陣列名 下標 注意這裡的方括號不是 可以省略 的意思,陣...