Scala之Array数组

数组作为一种最常见的数据结构,想来大家已经熟悉,本篇主要介绍scala中Array的使用。
数组中的元素都是同一种数据类型。
数组在scala中也分为定长数组和变长数组。

1.定长数组

定长数组:即数组长度固定不变
实例:

 val array1 = new Array[Int](10) //初始元素都为0的长度为10的Int类型数组
 val array2 = new Array[String](10)  //初始化元素为null的长度为10的String类型数组

2.变长数组

变长数组:数组长度可以变化,在scala中为ArrayBuffer数据结构
实例:

 import scala.collection.mutable.ArrayBuffer
    val a = ArrayBuffer[Int]()
    a += 100  //在数组末加入数据
    a += (1,2,3,4)
    a ++= Array(1,2,3)
    println(a)

在这里插入图片描述
可变数组的一些基础操作:

  a.insert(1,1000)   //在索引为1的位置插入1000
  a.insert(2,3,4,5)  //在索引为2的位置插入345 结果为ArrayBuffer(100, 1, 3, 4, 5, 2, 3, 4, 1, 2, 3)
  a.trimEnd(3)  //删除数组末尾的3个元素 结果为ArrayBuffer(100, 1, 2, 3, 4)
  a.remove(1) //删除索引为1的元素 结果为ArrayBuffer(100, 2, 3, 4, 1, 2, 3)
  a.remove(0,3) //删除索引0后的三个元素 结果为ArrayBuffer(3, 4, 1, 2, 3)
  a.toArray  //将可变数组转为固长数组

数组的一些计算操作,比如求和,排序等~

    val b = Array(1,3,1,4,5,8,8)
    
    val res = for(x <- b) yield 2 * x  //将b中的元素循环取出乘以2后在存入新数组res

    for (x <- b if x % 2 != 0) yield  2 * x  //取出数组中的奇数乘以2

    scala.util.Sorting.quickSort(b)   //对定长数组快排

    val b_sum = b.sum  //数组元素求和

    val c = ArrayBuffer(5,6,88,8,8)

    val c_sorted = c.sorted  //对c数组进行排序  ArrayBuffer(5, 6, 8, 8, 88)
    println(c_sorted)

    val c_mkString = c.mkString(" and ")  //使用and连接元素 5 and 6 and 88 and 8 and 8
    println(c_mkString) 

3.多维数组

多维数组:和其他语言如java中定义类似,就是一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组
实例:

 val matrix = Array.ofDim[Double](3,4)  //使用Array方法ofDim构造34列的数组
 matrix(2)(1) = 11  //给第二行第一列的元素赋值
 val matrix2 = new Array[Array[Int]](10)  //构造一个有10个Int类型数组元素的数组
发布了14 篇原创文章 · 获赞 1 · 访问量 684

猜你喜欢

转载自blog.csdn.net/qq_33891419/article/details/103517329