scala 陣列相關操作

2021-07-26 16:37:59 字數 1818 閱讀 4523

一,定長陣列

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...