声明数组
语法格式
var ArrayName : Array[DataType] = new Array[DataType](length)
或
var ArrayName = new Array[DataType](length)
或
var ArrayName = Array("data1", "data2", "data2")
数组赋值
//根据下标赋值
var arr= new Array[String](3)
arr[0] = "刘备"
arr[1] = "关羽"
arr[2] = "张飞"
多维数组
语法格式
导包
import Array._
var ArrayName : Array[DataType] = new Array[DataType](row,line)
或
var ArrayName = new Array[DataType](row,line)
数组赋值
//通过循环进行赋值
import Array._
object Test {
def main(args: Array[String]) {
var myMatrix = ofDim[Int](3,3)
// 创建矩阵
for (i <- 0 to 2) {
for ( j <- 0 to 2) {
myMatrix(i)(j) = j;
}
}
// 打印二维阵列
for (i <- 0 to 2) {
for ( j <- 0 to 2) {
print(" " + myMatrix(i)(j));
}
println();
}
}
}
数组合并
通过concat方法对数组进行连接
import Array._
object Test {
def main(args: Array[String]) {
var list1= Array("zhang","fei","ai","shang")
var list2= Array("tang","san","zang")
var list3= concat( list1, list2)
// 输出所有数组元素
for ( x <- list3) {
print( x + " ")
}
}
}
创建区间数组
使用了range()方法来生成一个区间范围内的数组。range() 方法最后一个参数为步长,默认为 1。
import Array._
object Test {
def main(args: Array[String]) {
//range(start,end,step)
var list1 = range(10,20, 2)
var list2 = range(10,20)
// 输出所有数组元素
for ( x <- list1 ) {
print( " " + x )
}
println()
for ( x <- list2 ) {
print( " " + x )
}
}
}
变长数组
需要引入包 import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
//创建可变数组
val b = ArrayBuffer[Int]()
//向数组中第n位添加数字
b += 1
//1
//向数组中追加n位数字
b += (2,3,4,5)
//1,2,3,4,5
//利用++=向数组中追加集合数据
b ++= Array(6,7,8)
//1,2,3,4,5,6,7,8
//移除最后n位数据
b.trimEnd(3)
//1,2,3,4,5
//在下标n之前插入数据
b.insert(2,5)
//1,2,5,3,4,5
b.insert(2,6,7,8)
//1,2,6,7,8,5,3,4,5
//移除下标n之后的数据(第二位表示移除的位数)
b.remove(2,1)
//1,2,7,8,5,3,4,5
b.remove(2,3)//数据不存在不会报错,并且将匹配的数据删除
//1,2,3,4,5
b.append(6,7,8)//在末尾追加数据
//1,2,3,4,5,6,7,8
//数据不存在不会报错,并且将匹配的数据删除
b -= 2//移除大小为2的数据
//1,3,4,5,6,7,8
b -=(3,4)//移除大小为3和4的数据
//1,5,6,7,8
b --=Array(4,5,6)//移除集合数据,
//1,7,8
b -=(2,7)
//将数组转换成数组缓存
val a = b.toBuffer
//循环遍历
for(i <- 0 until a.length)
println(i + ": " + a(i))
//1,8
//循环遍历
for(elem <- a)
println(elem)
数组排序
import scala.collection.mutable.ArrayBuffer//导入创建可变数组
object Test{
def main(args:Array[String]){
var a = ArrayBuffer[Int]()
a ++= Array(1,2,5,3,4,5,0,-2,-1,-5,-7)
exchange(a)
}
def exchange(a:ArrayBuffer[Int]){
var b = ArrayBuffer[Int]()
var c = ArrayBuffer[Int]()
for(elem <- a){
if(elem >= 0)
//将大于等于0的数据放入b中
b += elem;
if(elem < 0)
//将小于0的数据放入c中
c += elem
}
b = b.sorted//按小到大自然排序
c = c.sorted.reverse//按大到小排序
println(b)
println(c)
}
}