import scala.collection.mutable.arraybuffer
object
demo
def changint: unit =
def signumarr(arr: array[int]) =
}
//固定陣列
val arr1 = new
array[int](3) // 初始值都是0
val arr2 = array("hello", "world") // 不用new關鍵字
//陣列緩衝
val arrbuffer = new
arraybuffer[int]()
陣列訪問呼叫角標的時候使用的是()不是
陣列緩衝的trimend方法十分高效,邏輯可以盡量往這邊靠攏
//固定陣列
arr2(0) = "hi"
//設定角標為0的值
println(arr2(0)) // 輸出 hi
//陣列緩衝
arrbuffer +=12
// 新增元素 12
println(arrbuffer(0)) // 輸出 12
arrbuffer ++= arr // 新增 arr 所有元素後:12 0 0 0
arrbuffer.insert(2
,5) //在角標處插入元素後:12 0 5 0 0
arrbuffer.trimend(3) //刪除倒數第 3 個元素後:12 0 0 0
val arr = arrbuffer.toarray //陣列緩衝轉化成固定陣列
val arrbuffer = arr.tobuffer //固定陣列轉化成陣列緩衝
for (i <- 0
until arrbuffer.length) print(arrbuffer(i))
for (i <- arrbuffer.indices) print(arrbuffer(i))// arrbuffer.indices相當於0
until arrbuffer.length
for (i <- 0
until(arrbuffer.length, 2)) print(arrbuffer(i)) // 每兩個一跳(會不會視為元組?)
for (i <- (0
until arrbuffer.length).reverse) print(arrbuffer(i)) // 從尾部開始遍歷
for (elem <- arrbuffer) println(elem)
arrbuffer.foreach(println) //輸出每乙個值
val a = array(2, 3, 4, 5)
val b = for (elem <- a) yield elem // 通過for yield 返回的是陣列或者陣列緩衝
val c = for (elem <- a if elem % 2 == 0) yield elem //使用守衛過濾奇數,for yield是不會影響原陣列或陣列緩衝的
// 逆序
arr.reverse:返回array的逆序
arraybuffer.reverse:返回arraybuffer的逆序
// 求和
val a1 = array(1, 2, 3, 4).sum //10
println("常用演算法a1:" + a1)
val a2 = arraybuffer(1, 2, 3, 4).sum //10
println("常用演算法a2:" + a2)
// 統計
val a = arr.count(_ < a)//統計陣列arr中小於a的個數
val a = arr.count(_ == a)//統計陣列arr中等於a的個數
val a = arr.count(_ > a)//統計陣列arr中大於a的個數
// 極值
val b1 = array("mary", "had", "little").max //"little"
println("常用演算法b1:" + b1)
val b2 = arraybuffer("mary", "had", "little").max //"little"
println("常用演算法b2:" + b2)
// 排序(新建另乙個陣列)
val c1 = arraybuffer(1, 7, 9, 3)
println("常用演算法c1:" + c1)
val csorted1 = c1.sorted //原陣列不會發生改變,cstorted1:1,3,7,9
println("常用演算法csorted1:" + csorted1)
val c2 = arraybuffer(1, 7, 9, 3)
println("常用演算法c2:" + c2)
val csorted2 = c2.sorted //原陣列不會發生改變,cstorted2:1,3,7,9
println("常用演算法csorted2:" + csorted2)
// 排序(不新建陣列)
val d1 = array(1, 7, 9, 3)
scala.util.sorting.quicksort(d1)//只能用於固定長度陣列
printarray(d1)
val s = "helloworld"
val str = s.take(3) //順序取 第三個以前 hel
val str = s.drop(3) //順序取 第三個以後 loworld
val str = s.takeright(3) //逆序取 倒數第三個以後 rld
val str = s.dropright(3) //逆序取 倒數第三個以前 hellowo
val str = s.substring(1,3) //前閉後開 el
val arr1 = array.ofdim[int](3, 4) // 直接建立 3行4列
//不規則多維陣列
val arr2 = new
array[array[int]](10) // 建立不規則多維陣列
for (i <- 0
until arr2.length) arr2(i) = new
array[int](i + 1)// 賦值
Scala 基礎2 陣列
陣列 array arraybuffer 定長陣列 val a array int array 1,2,3,4,5 a array 1,2,3 錯誤 println a 0 a 0 10 println a 0 val a array 1,2,3,4,5 array int for x a prin...
scala基礎語法 陣列
在scala中,可以使用new例項化類,建立物件的例項時,可以使用數值或型別引數。使用方括號來指明資料型別引數。如下 val hellostrings new array string 2 hellostrings 0 hello hellostrings 0 world n for i 0 to ...
scala基礎4 集合
map set list 集合 可變集合可以在適當的地方被更新或擴充套件,意味著你可以修改 新增 移除乙個集合的元素。而不可變集合類,相比之下,永遠不會改變。不過,你仍然可以模擬新增,移除或更新操作。但是這些操作都將返回乙個新的集合,同時原來的集合不發生改變。不可變的都在immutable裡,可變的...