Scala中的array

17 阅读1分钟

array的定义

package jue.lan

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(arr1(0))
    println(arr1(2))
    println(arr1(20)) //报错:数组越界!
  }
}

array可变与不可变类型

package jue.lan

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(arr1(0))
    println(arr1(2))
    println(arr1(20)) //报错:数组越界!
  }
}

array常用方法

package jue.lan

object array03 {
  def main(args: Array[String]): Unit = {
    // 可变数组
    val arr1 = scala.collection.mutable.ArrayBuffer(1,2,0,-1,20,3)
    // 排序
    val arr2 = arr1.sortWith((a,b)=>a>b)
    // 切片: 只取整个数组中的某个部分 slice
    val arr3 = arr1.slice(0, 3)
    // 过滤
    val arr4 = arr1.filter(x => x>0)
    // 搜索位置: 检查某个元素的下标
    val target = -2
    val result = arr1.indexOf(target) // 如果没找到这个元素, 就返回-1
    println(s"${target}的下标是 ${result}")

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