版權(quán)申明:轉(zhuǎn)載請注明出處。
文章來源:http://bigdataer.net/?p=251
排版亂?請移步原文獲得更好的閱讀體驗
3.1數(shù)組
(1) 定長數(shù)組(Array)
//直接聲明使用
val array = Array("a","b","c")
//設(shè)置數(shù)組長度并賦值
val array = new Array[String](3)
array(0) = "a"
array(1) = "b"
array(2) = "c"
(2) 數(shù)組緩沖(ArrayBuffer)
數(shù)組緩沖是一種可變的數(shù)組,類似于Java中的ArrayList,但是ArrayBuffer提供了非常豐富的api
//聲明
import scala.collection.multable.ArrayBuffer
val buf = new ArrayBuffer[Int]()
//添加單個元素
buf += 1
//添加多個元素
buf ++= (2,3,4)
//追加一個數(shù)組
buf ++= Array(5,6,7)
更多操作可以參考API文檔
(3)數(shù)組的高級API
//數(shù)組內(nèi)元素求和
Array(1,3,5).sum
//取最大值
Array(1,2,4).max
//排序
val newArray = Array(3,2,5,7,1).sortWith(_>_)
可以自定義排序方法,或者使用scala提供的排序方法,如:
val a = Array(3,2,5,7,1)
//使用快排
scala.util.Sorting.quickSort(a) //不會產(chǎn)生新的數(shù)組,原來數(shù)組中的元素位置改變
注意:ArrayBuffer不能排序,因為數(shù)組緩沖中的元素個數(shù)不確定。
(4)與Java互操作
java.util.List轉(zhuǎn)化為scalaArrayBuffer:import scala.collection.JavaConversions.asScalaBuffer
ArrayBuffer轉(zhuǎn)java List: import scala.collection.JavaConversions.bufferAsJavaList
3.2映射
scala中映射也分可變映射和不可變映射。
//創(chuàng)建一個不可變映射
val rank = Map("zs" -> 3,"ls" -> 4)
//創(chuàng)建一個可變的映射,兩種方法
val rank = scala.collection.multable.Map("zs" -> 3,"ls" -> 4)
val rank = new scala.collection.multable.Map[String,Int]()
//添加刪除元素
rank +=("ww" -> 5,"zl" -> 6)
rank -= "ww"
//更新可變映射
rank("zs") = 30
//迭代映射
for((k,v) <- map){ some code}
3.3元組
元組是一種能存放不同數(shù)據(jù)類型的容器,一般聲明如下:
//聲明
val tuple = (11.11,12,"bb")
//遍歷
tuple.foreach{}