Scala學習筆記 陣列

2021-07-04 18:22:45 字數 2340 閱讀 3470

對於scala來說,陣列是一塊相當總要的內容,因此掌握是十分重要的。

陣列分為兩種:定長陣列(array) 變長陣列(arraybuffer)

array:

//10個整數的陣列,所有元素的初始化為0

val nums = new arraystring

//長度為2的array[string]--型別是推斷出來的

//注:已提供初始值就不需要new了

val s = array("hello","spark")

arraybuffer:

import scala.collection.mutable.arraybuffer

//或者是new arraybuffer[int] 乙個空的陣列緩衝,準備存放整數

val b = arraybufferint

//arraybuffer[1],+= 表示在尾端新增乙個

b += 1

b += (1,2,3,4)

//++= 操作符追加任何集合

b ++= array(8,13,21)

//移除最後5個元素

b.trimend(5)

//在下標為2之前插入乙個6

b.insert(2,6)

//在下標為2之前插入:7,8,9

b.insert(2,7,8,9)

//把下標為2的刪除

b.remove(2)

//從下標為2向後刪除3個

b.remove(2,3)

1>迴圈遍歷

格式:

for(i <- 0 until a.length)

println(a(i)) //> null

還可以這樣

for(elem <- a)

println(elem)

2>陣列轉換

val a = array(2,3,5,7,11) //> a : array[int] = array(2, 3, 5, 7, 11)

val result = for(elem <- a) yield 2*elem //> result : array[int] = array(4, 6, 10, 14, 22)

for(…)yield迴圈可以建立出來乙個新的陣列,也不會修改原有的陣列

//如果你在遍歷的時候只想把滿足條件的篩選出來,可以通過守衛實現,就是在for中新增if實現

for(elem <- a if(elem %2 == 0))yield 2*elem

//而在生成情況下是:

a.filter(_ % 2 == 0).map(2*_)

//注意:元素的型別必須是數值型別:要麼是整型,要麼是浮點數或是biginteger/bigdecimal

array(1,7,2,9).sum //> res0: int = 19

arraybuffer(1,7,2,9).sum //> res1: int = 19

//此時是字串,進行max操作的時候是看那個字串最長

arrarybuffer("mary","had","a","little","lamb").max //little

sorted方法將陣列或陣列緩衝排序並返回經過排序的陣列或陣列緩衝,這個過程不會修改原始版本:

val b = arrarybuffer(1,7,2,9)

val bsorted = b.sorted(_ < _)//b沒有被改變,bsorted是arrarybuffer(1,2,7,9)

val bsorted = b.sorted(_ > _)//b沒有被改變,bsorted是arrarybuffer(9,7,2,1)

如果想要顯示陣列或陣列緩衝的內容,可以使用mkstring方法,它允許你指定元素之間的分隔符。

a.mkstring(" and ")

//"1 and 2 and 7 and 9"

a.mkstring("<",",",">")

//"<1,2,7,9>"

多維陣列 array[array[double]] 可以使用ofdim方法:

val matrix = array.ofdim[double](3,4)//3行,4列

//比如想訪問第二行,第三列

matrix(1)(2) = 42

//建立不規則的陣列,每一行的長度個不相同

val ******** = new array[array[int]](10)

for(i <- ********)

********(i) = new array[int](i + 1)

JS學習筆記 陣列

ecmas cript 中沒有提供類和介面等的定義,但它卻是一門物件導向的語言,由於它能夠通過其它 方式實現類似高階語言的物件導向功能,這些內容將在後面的文章中進行一步步的總結。此篇僅對 js中物件作簡要說明,重點彙總一些類似於物件的陣列的經常用法。物件建立 上篇提到建立物件的兩種方式 使用new ...

PHP學習筆記 陣列

學習的內容太多,用文章記錄知識點可以加深印象,也方便查詢!陣列初始化 php array array foo bar bar foo 自 php 5.4 起 array foo bar bar foo 初始化為空陣列 php array array array push array push arr...

C學習筆記 陣列

陣列是一組具有相同資料型別的變數集合,這裡要注意兩點,陣列只能儲存相同的資料型別和陣列的記憶體是連續的,這位陣列和指標的聯絡奠定了基礎。定義及初始化 一維陣列指的是只有乙個下標的陣列,它用來表示一組具有相同型別的資料 其格式為 型別說明符 陣列名 常量表示式 e.g.int arr 3 上式表達的是...