Array

27 阅读1分钟

  • Array 和 List 的区别
  • Array: 有序, 数组; 元素在空间上连续, 通过下标访问元素会特别快!
  • List: 有序, 链表; 元素在空间上不连续
  • 两种类型: 可变, 不可变
  • 不可变: 一个数组创建之后, 不能添加, 不能删除!
  • 常用的方法: 添加, 删除, 代表, 循环, 排序, ......
package array

object array01 {
  def main(args: Array[String]): Unit = {
    // 可变数组
    val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
    // 可以直接添加元素
    arr1 += 4
    println(arr1)

    // 不可变数组
    val arr2 = Array(1,2,3)
    // 不可变, 不能直接添加元素
    // arr2 += 4 // 报错
    println(arr2)
  }
}

image.png

package array

object array02 {
  def main(args: Array[String]): Unit = {
    // Array(1,2,3)
    // val arr = Array.range(1,100)
    // arr.foreach(println) // 1-99
    // val arr1 = Array.range(1,100,3) // 3步长
    // arr1.foreach(println) // 1-99

    val arr1 = Array(1,2,3)
    // 访问数组元素
    println(arr1(0)) // 第一个元素
    println(arr1(2)) // 第三个元素
    println(arr1(3)) // 报错:数组越界! 第4个元素: java.lang.ArrayIndexOutOfBoundsException
  }
}

image.png

  • 常用的方法
  • 添加 +=
  • 删除,查找,循环,排序,......
package array

object array03 {
  def main(args: Array[String]): Unit = {
    // 可变数组
    val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
    // 添加
    arr1 += 4

    arr1 ++= (5,6,7)

    // 删除
    arr1 -= 4
    // 删除某个下标上的元素
    // arr1.remove(0)
    arr1.remove(0, 3) // 从指定位置开始删除,删除几个?

    // 修改
    arr1(0) = 700

    // 判断是否包含2
    println(arr1.contains(0)) // true
    println(arr1.contains(8)) // false

    println(arr1.sum) // 求和

    arr1.foreach(ele => println(ele))
  }
}

image.png