一,定長陣列
array定長陣列,訪問陣列元素需要通過()
val nums = new array[int](10) //長度為10的int陣列 初始化為0
val strs = new array[string](10) //長度為10的string陣列 初始化為null
val s = array("hello","world") //初始化陣列長度為2,不需要new
s(0) = "goodbye" //訪問陣列元素通過()
二,變長陣列
import scala.collection.mutable.arraybuffer
val b = arraybuffer[int]()
b += 1 //在尾端新增元素 arraybuffer(1)
b+=(2,3,4,5) //在尾端新增多個元素 arraybuffer(1,2,3,4,5)
b++=arraybuffer(8,19,20) //可以使用++-操作符追加任意集合 arraybuffer(1,2,3,4,5,8,19,20)
b.trimend(3) //在尾部刪除3個元素 arraybuffer(1,2,3,4,5)
b.insert(2,6) //在下標2之前插入6 arraybuffer(1,2,6,3,4,5)
b.insert(3,7,8,9) //在下標3之前插入7,8,9 arraybuffer(1,2,6,7,8,9,3,4,5)
b.remove(2) //刪除下標為2的元素 arraybuffer(1,2,7,8,9,3,4,5)
b.remove(2,3) //從下標為2的元素開始,刪除3個元素 arraybuffer(1,2,3,4,5)
val c = b.toarray //不知道元素個數先構建arraybuffer,然後再轉化成陣列
c.tobuffer //陣列轉化成陣列緩衝
三,遍歷陣列和陣列緩衝區
for(i<- 0 until b.length) //直接通過下標訪問陣列,until 不包括上線
for(i<- 0 until (b.length,2)) //step = 2 步長為2
for(i<- (0 until b.length).reverse) //反轉
for(i<- b) //不使用陣列下標直接訪問元素
四、陣列轉換
通過for yield對資料進行轉換
val a = array(2,3,5,7,11)
val b = for(i<- a if i%2 !=0) yield i * 2 //生成乙個新的陣列
for(i<- b) print(i+" ")
五、常用演算法
import scala.util.sorting.quicksort
val a = array(2,9,5,7,11)
println(a.sum)
println(a.max)
println(a.tobuffer)
println(a.mkstring(" and "))
println(a.mkstring("<"," and ",">"))
println(a.tobuffer.sorted) //陣列本身不變,產生新的陣列,公升序排列
println(a.tobuffer.sortwith(_>_)) //陣列本身不變,產生新的陣列,降序排列
println(a.tostring)
println(a.tobuffer.tostring())
quicksort(a) //對陣列本身排序
Scala 陣列操作之陣列轉換
對 array 進行轉換,獲取的還是 array val a array 1,2,3,4,5 val a2 for ele a yield ele ele 對 arraybuffer 進行轉換,獲取的還是 arraybuffer val b arraybuffer int b 1,2,3,4,5 v...
scala學習第三章陣列相關操作
val b new arraybuffer int 或者 new arraybuffer int b 1 arraybuffer 1 用 在尾端新增元素 b 1,2,3,5 arraybuffer 1,1,2,3,5 在尾端新增多個元素 b array 1,2,3 arraybuffer 1,1,2...
Scala程式設計入門 陣列操作之陣列轉換
使用yield和函式式程式設計轉換陣列 對array進行轉換,獲取的還是aarry val a array 1,2,3,4,5 val a2 for ele a yield ele ele 對arraybuffer進行轉換,獲取的還是arraybuffer val b arraybuffer int...