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

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之间来回传递

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值