scala数组
scala语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。
声明数组变量并不是声明number0、number1、....、number99一个个单独的变量,而是声明一个就像numbers这样的变量,后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。
数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。
声明数组
语法格式如下:
var z:Array[String] = new ArrayString
或
var z = new ArrayString
以上语法中,z 声明一个字符串类型的数组,数组长度为 3 ,可存储 3 个元素。我们可以为每个元素设置值,并通过索引来访问每个元素,索引从0开始
数组处理
数组的元素类型和数组的大小都是都确定的,所有当处理数组元素时候, 我么通常使用for循环示例:
bject ForTest {
def main(args: Array[String]): Unit = {
var numlist = Array(1.9,2.9,3.4,3.5)
for (x <- numlist)
println(x)
//计算数组中所有元素的和
var total = 0.0
// for (x <- numlist )
// total += x
// println (total)
for (i <- 0 to numlist.length -1)
total += numlist(i)
println (total)
//查找数组中最大的元素
var max = numlist(0)
for (i <- 1 to numlist.length -1){
if (numlist(i) > max)
max = numlist(i)
}
println("最大值为:" + max)
}
多维数组
多维数组一个数组中的值可以使另一个数组,另一个数组的值也可以是一个数组,矩阵和表格是我们常见的二维数组。
一下是一个定义二维数组的示例:
var mymatrix = ofDimInt
import Array._
object OfDimTest {
def main(args: Array[String]): Unit = {
var mytrix = ofDim[Int](3,3)
//创建矩阵
for (i <- 0 to 2){
for (j <- 0 to 2){
mytrix(i)(j) = j
}
}
// 打印二维数组
for(i <- 0 to 2){
for (j <- 0 to 2){
print(" " + mytrix(i)(j))
}
println()
}
}
}
合并数组
concat()
object ConcatTest {
def main(args: Array[String]): Unit = {
var arr1 = Array(1.9, 2.9, 3.4, 3.5)
val arr2 = Array(8.9, 7.9, 0.4, 1.5)
var arr3 = Array.concat(arr1,arr2)
//输出每个元素
for( x <- arr3){
println(x)
}
}
}
创建区间数组
range(),最后一个参数为步长,默认为1
object RangeTest {
def main(args: Array[String]): Unit = {
var arr1 = Array.range(10,20,2)
var arr2 = Array.range(10,20)
//输出所有数组元素
for (x <- arr1){
print(" " + x)
}
for (x <- arr2){
print(" " + x)
}
}
}
可变数组操作
object ArrayBufferTest {
def main(args: Array[String]): Unit = {
var arrayBuffer : ArrayBuffer[Int] = ArrayBuffer(1,2,3)
//在索引为0的位置插入参数
arrayBuffer.insert(0,8,9,0)
//从索引3删除2个元素
arrayBuffer.remove(3,2)
//转换成定长数组
val arr = arrayBuffer.toArray
for (i <- arrayBuffer) println(i)
}
}
数组的常用操作
var array = Array(1, 2, 3, 4, 5, 6)
println(array.sum)
println(array.max)
println(array.min)
println(array.toString)
println(array.mkString(","))
println(array.mkString("<", ",", ">"))
数组操作的API
使用前需要先 import Array._
网友评论