scala数组创建、访问、遍历与元素追加

不可变数组创建访问与遍历

object ImmutableArray {
  def main(args: Array[String]): Unit = {
    //创建数组
    val arr: Array[Int] = new Array[Int](5)
    //另一种创建方法
    val arr2 = Array(12, 26, 11, 23, 94)

    //元素访问
    arr(0) = 12
    arr(2) = 65

    //数组遍历
    for (i <- 0 until arr2.length) {
      println(arr2(i))
    }

    //简化
    for (i <- arr.indices) {
      println(arr(i))
    }

    //直接遍历所有元素,增强for循环,arr.for自动生成
    for (elem <- arr) {
      println(elem)
    }

    //迭代器实现集合遍历

    val iter = arr2.iterator

    while (iter.hasNext) {
      println(iter.next())
    }

    //调用foreach方法
    arr2.foreach((elem: Int) => println(elem))

    //简化
    arr2.foreach(println)

    //打印字符串
    println(arr2.mkString("--"))


  }

}

添加元素

//末尾添加元素,并返回一个新的数组
    val newArr = arr2.:+(73)
    println(newArr.mkString("--"))

    //最前端添加元素,并返回一个新的数组
    val newArr2 = arr2.+:(73)
    println(newArr2.mkString("--"))

    //简化
    val newArr3 = newArr2 :+ 15 :+ 12 //末端追加
    val newArr4 = 19 +: 15 +: newArr3 //最前端追加
    println(newArr3.mkString("--"))
    println(newArr4.mkString("--"))

在这里插入图片描述

可变数组ArrayBUffer

import scala.collection.mutable.ArrayBuffer

object Test_ArrayBuffer {
  def main(args: Array[String]): Unit = {
    //创建可变数组
    val arr1 = new ArrayBuffer[Int]()
    val arr2 = ArrayBuffer(23, 43, 65)

    //在末尾追加元素
    arr2.append(23)
    //在最前面追加
    arr2.prepend(43)
    //在任意位置添加多个
    arr2.insert(1, 11, 22)
    //添加整个数组
    arr2.insertAll(1, arr1)
    arr2.appendAll(arr1)
    //删除元素
    arr2.remove(2) //删索引为2的元素
    arr2.remove(1,1)//指定位置开始删除多个元素
    
    //删除指定值的元素
    arr2 -= 11

    //可变数组转不可变数组
    val newArray: Array[Int] = arr2.toArray
    println(newArray.mkString("--"))

	//不可变数组转可变数组
    val buffer: mutable.Buffer[Int] = newArray.toBuffer

    println(arr2)
  }

}

多维数组

object Test_MulArray {
  def main(args: Array[String]): Unit = {
    //1.创建二维数组
    val array: Array[Array[Int]] = Array.ofDim[Int](3, 3)

    //访问元素,并赋值
    array(0)(0) = 10
    array(0)(1) = 11
    array(1)(1) = 11
    array(1)(2) = 22


    //遍历
    array.foreach(line => line.foreach(println))

    array.foreach(_.foreach(println))
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值