黑猴子的家:Scala 数组 Array

1、定长数组

//定义定长数组
val arrayim1 = new Array[Any](10)
//修改
println(arrayim1.update(0,true))
println(arrayim1.update(1,"haha"))
println(arrayim1.update(2,123))
//修改的简化操作
arrayim1(3) = 3
println(arrayim1.mkString(" "))

尖叫提示:一定要声明数组类型

2、变长数组

//变长数组
//定义
val array3 = ArrayBuffer[Int]()
//追加值
array3.append(1)
array3.append(2)
array3.append(9)
//修改,重新赋值
array3(1) = 5
array3.update(1,4)
println(array3.mkString(" "))

3、定长数组与变长数组的转换

(1)定长数组转变长数组

val arrayim1 = new Array[Any](10)
//执行了一个copy的操作
val arrayim1_1 = arrayim1.toBuffer

(2)变长数组转定长数组

val array3 = ArrayBuffer[Int]()
//执行了一个copy的操作
val array3_1 = array3.toArray

4、多维数组

val array5 = Array.ofDim[Int](10,20)
array5(1)(2) = 20
println(array5(1).mkString(" "))

尖叫提示:必须指定类型,如果不指定类型,语法上是没有错的,但是只能传输Nothing类型,Nothing类型是所有类型的子类,是没有意义的

5、与Java数组的互转

(1)Scala数组转Java数组

//可变数组转java 的ProcessBuilder 传参必须是String
val array6 = ArrayBuffer[String]("A","B","C")
array6.append("F")
import scala.collection.JavaConversions.bufferAsJavaList
val javaArr1 = new ProcessBuilder(array6)
println(javaArr1.command())

(2)Java数组转Scala数组

import scala.collection.JavaConversions.asScalaBuffer
import scala.collection.mutable.Buffer
val scalaArr:Buffer[String] = javaArr1.command()
println(scalaArr.mkString(","))
for (a1 <- scalaArr){
  println(a1)
}

尖叫提示:Java 转Scala,赋值即可,Scala会自动隐士转换
Java与Scala互转的操作,用的不多,因为Java能做的Scala都能做
那么什么时候用呢?? 我们在调用java的一个函数的时候,
这个函数的参数类型,必须是java的类型,那么这时候你传一个scala的类型是不行的,就需要转换一下

6、数组的遍历

for (a1 <- scalaArr){
  println(a1)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值