可变数组2025.12.11

34 阅读1分钟
object array04 {
  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))
  }
}
  • 排序无需繁琐的循环,sortWith((a,b)=>a>b)用匿名函数的方式,一句话实现了降序排列,逻辑清晰得像和计算机 “说人话”;
  • 切片功能则像给数据 “裁衣”,slice(0,3)精准截取前 3 个元素,既不用关心数组长度的边界,也不用手动写循环遍历;
  • 过滤更像是 “数据筛选器”,filter(x => x>0)轻松把正数挑出来,让代码成了 “问题描述本身”。