您的位置:首页 > 其它

Scala学习笔记-数组相关操作

2017-10-19 17:44 316 查看
1. 定长数组

如果需要一个长度不变的数组,可以使用scala中的Array。例如 

 val nums=new Array[Int](10)

val s=Array("Hello","world")

s(0)="GoodBye" 

2. 变长数组:数组缓冲

对于长度需要变化的数组,Java有ArrayList,C++有vector。Scala中数据结构ArrayBuffer



在数组缓冲的尾端添加或者移除元素是一个高效的操作。但是在任意位置插入或者移除元素,并不高效,因为所有那个位置后面的元素都必须被平移

3. 遍历数组和数组缓冲

for循环遍历数组或者数组缓冲的语法:

 for(i<-0 until a.length)  println(i+":"+a(i))

until 是RichInt类的方法,返回所有小于(但不包括)上限的数字 ,  0 until 10 实际上是: 0.until(10)

4.数组转换

scala中,对一个数组或者数组缓冲进行转换,不会修改原始数组,而是产生一个全新的数组

val a = Array(2,3,4,5)

val result = for( elem<-a) yield 2*elem  

5.多维数组

例如:Double的二维数组类型为Array[Array[Double]]

val matrix=Array.ofDim[Double](3,4)   //三行,四列

访问元素:  matrix(row)(column)

创建不规则数组,每一行的长度各不相同:

val  triangle=new Array[Array[Int]](10)

 for(i<-0 until tr.length)  tr(i)=new Array[Int](i+1)

6. 与java的互操作

由于scala数组是用java数组实现的,因此可以在java和scala之间来回传递
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala spark 快学scala