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)
}