1. 程式人生 > >scala的知識點(二)

scala的知識點(二)

可以修改陣列中的值
val arr1 = Array(1,2,3)
arr1(1) = 5
----
//轉換為可變陣列可以執行各種操作
val arr1_v = arr1.toBuffer
//新增一個數組元素
arr1_v +=1
//如果新增的是另外一個數組
arr1_v ++= arr2
//+=追加一個或者多個元素,++=追加一個seq物件
---
//在4的位置追加剩下的元素
arr1_v.insert(4,44,4444,44444)
//從第幾個位置開始,刪除幾個元素
arr1_v.remove(2,3)
------
//定長陣列的初始化
val arr1 = Array(1,2,3)
val arr2 = new Array[Int](3)
//呼叫的是Array.apply(3)
val arr3 = Array[Int](3)
-------
//最大值最小值等等
arr1.max
arr1.min
arr1.sum
-------
//轉化為string並且用"-"進行連線
arr1.mkString("-")
//或者開頭,中間,結尾分別用不同的符號
arr1.mkString("<","-",">")
----------
//map操作,就是將陣列中的值分別取出作為匿名函式的引數進行處理之後返回結果
//函式型別必須和arr相同,且只有一個,返回值型別沒有限制
arr1.map((x:Int)=>x+1)
//這個例子就返回一個double型別的結果集合
arr1.map((x:int)=>{val result = x+1;result.toDouble})
----------------
//相當於arr1.max
arr1.reduce((x:Int,y:Int)=>{if(x>y) x else y})
//相當於arr1.min
arr1.reduce((x:Int,y:Int)=>{if(x<y) x else y})
//初始值相當於陣列中的前兩個元素,進行計算之後依次和後一個再進行計算,進行fold(摺疊)
//聚合到最後最終得到一個值
//接收兩個引數返回一個引數,引數型別和arr1相同,返回值型別也和arr型別一樣
-------
//求一個數組中元素的個數,可以把元素都轉化為1然後sum一下
arr.map(x=>1).sum