第四章 数组操作

1 scala数组操作

1.1 定义定长数组

scala> val arr1=new Array[Int](5)
arr1: Array[Int] = Array(0, 0, 0, 0, 0)
打印数组后,输出地址
scala> println(arr1)
[I@199e4c2b
调用数组对象的toBuffer方法
scala> println(arr1.toBuffer)
ArrayBuffer(0, 0, 0, 0, 0)

初始化定长数组
scala> val arr2=Array(8,6,"abc")
arr2: Array[Any] = Array(8, 6, abc)

输出指定索引元素
scala> println(arr2(2))
abc

1.2 定义变长数组

首先,必须导入mutable(可变的),ArrayBuffer

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

定义,可变数组
scala> val arr3=ArrayBuffer[Int]()
arr3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

为可变数组添加元素
scala> arr3+=1
res5: arr3.type = ArrayBuffer(1)

为可变数组添加一个元组对象,注意使用++
scala> arr3+=(8,10,66)
res6: arr3.type = ArrayBuffer(1, 8, 10, 66)

为可变数组添加一个定长数组
scala> arr3++=Array(6,9)
res7: arr3.type = ArrayBuffer(1, 8, 10, 66, 6, 9)

为可变数组添加一个可变数组
scala> arr3++=ArrayBuffer(55,33)

res8: arr3.type = ArrayBuffer(1, 8, 10, 66, 6, 9, 55, 33)

在第0个索引插入元素

scala> arr3.insert(0,11,22,33)


scala> arr3
res10: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(11, 22, 33, 1, 8, 10, 66, 6, 9, 55, 33)

从第3个索引位置开始删除3个元素
scala> arr3.remove(3,3)
scala> arr3

res12: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(11, 22, 33, 66, 6, 9, 55, 33)

遍历

for(i->arr3)print(i)

for(i->0 until arr3.length)print(arr3(i))

for((i->(0 until arr3.length).reverse)print(arr3(i))

使用yield生成新数组

scala> val arr=Array(1,3,5)

arr: Array[Int] = Array(1, 3, 5)

scala> var arr2=for(i<-arr) yield i*3
arr2: Array[Int] = Array(3, 9, 15)


scala> arr
res13: Array[Int] = Array(1, 3, 5)


scala> arr2
res14: Array[Int] = Array(3, 9, 15)


scala> arr.sum
res15: Int = 9


scala> arr.max
res16: Int = 5


scala> arr.min
res17: Int = 1

scala> arr.length
res20: Int = 3


scala> arr3.sorted
res21: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(6, 9, 11, 22, 33, 33, 55, 66)


scala> arr3
res22: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(11, 22, 33, 66, 6, 9, 55, 33)


scala> val arr4=arr3.sorted
arr4: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(6, 9, 11, 22, 33, 33, 55, 66)


scala> arr4
res23: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(6, 9, 11, 22, 33, 33, 55, 66)

猜你喜欢

转载自blog.csdn.net/wshsdm/article/details/80378213