對於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 上式表達的是...