Scala 集合-数组

Scala 集合-数组

1 不可变数组

1)第一种方式定义数组
定义:val arr1 = new Array[Int](10)
(1)new 是关键字
(2)[Int]是指定可以存放的数据类型,如果希望存放任意数据类型,则指定 Any
(3)(10),表示数组的大小,确定后就不可以变化
2)案例实操

object TestArray{
 def main(args: Array[String]): Unit = {
	 //(1)数组定义
	 val arr01 = new Array[Int](4)
	 println(arr01.length) // 4
	 //(2)数组赋值
	 //(2.1)修改某个元素的值
	 arr01(3) = 10
	 //(2.2)采用方法的形式给数组赋值
	 arr01.update(0,1)
	 //(3)遍历数组
	 //(3.1)查看数组
	 println(arr01.mkString(","))
	 //(3.2)普通遍历
	 for (i <- arr01) {
	 	println(i)
	 }
	 //(3.3)简化遍历
	 def printx(elem:Int): Unit = {
	 	println(elem)
	 }
	 arr01.foreach(printx)
	 // arr01.foreach((x)=>{println(x)})
	 // arr01.foreach(println(_))
	 arr01.foreach(println)
	 //(4)增加元素(由于创建的是不可变数组,增加元素,其实是产生新的数组)
	 println(arr01)
	 val ints: Array[Int] = arr01 :+ 5
	 println(ints)
 }
}

3)第二种方式定义数组
val arr1 = Array(1, 2)
(1)在定义数组时,直接赋初始值
(2)使用 apply 方法创建数组对象
4)案例实操

object TestArray{
 def main(args: Array[String]): Unit = {
	 var arr02 = Array(1, 3, "bobo")
	 println(arr02.length)
	 for (i <- arr02) {
		println(i)
 	}
 }
}

2 可变数组

1)定义变长数组
val arr01 = ArrayBuffer[Any](3, 2, 5)
(1)[Any]存放任意数据类型
(2)(3, 2, 5)初始化好的三个元素
(3)ArrayBuffer 需要引入 scala.collection.mutable.ArrayBuffer
2)案例实操
(1)ArrayBuffer 是有序的集合
(2)增加元素使用的是 append 方法(),支持可变参数

import scala.collection.mutable.ArrayBuffer
object TestArrayBuffer {
	 def main(args: Array[String]): Unit = {
		 //(1)创建并初始赋值可变数组
		 val arr01 = ArrayBuffer[Any](1, 2, 3)
		 //(2)遍历数组
		 for (i <- arr01) {
		 	println(i)
		 }
		 println(arr01.length) // 3
		 println("arr01.hash=" + arr01.hashCode())
		 //(3)增加元素
		 //(3.1)追加数据
		 arr01.+=(4)
		 //(3.2)向数组最后追加数据
		 arr01.append(5,6)
		 //(3.3)向指定的位置插入数据
		 arr01.insert(0,7,8)
		 println("arr01.hash=" + arr01.hashCode())
		 //(4)修改元素
		 arr01(1) = 9 //修改第 2 个元素的值
		 println("--------------------------")
		 for (i <- arr01) {
		 	println(i)
		 }
		 println(arr01.length) // 5
	 }
}

3 不可变数组与可变数组的转换

1)说明
arr1.toBuffer //不可变数组转可变数组
arr2.toArray //可变数组转不可变数组
(1)arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化
(2)arr1.toBuffer 返回结果才是一个可变数组,arr1 本身没有变化
2)案例实操

object TestArrayBuffer {
	 def main(args: Array[String]): Unit = {
		 //(1)创建一个空的可变数组
		 val arr2 = ArrayBuffer[Int]()
		 //(2)追加值
		 arr2.append(1, 2, 3)
		 println(arr2) // 1,2,3
		 //(3)ArrayBuffer ==> Array
		 //(3.1)arr2.toArray 返回的结果是一个新的定长数组集合
		 //(3.2)arr2 它没有变化
		 val newArr = arr2.toArray
		 println(newArr)
		 
		 //(4)Array ===> ArrayBuffer
		 //(4.1)newArr.toBuffer 返回一个变长数组 newArr2
		 //(4.2)newArr 没有任何变化,依然是定长数组
		 val newArr2 = newArr.toBuffer
		 newArr2.append(123)
		 println(newArr2)
	 }
 }

4 多维数组

1)多维数组定义
val arr = Array.ofDim[Double](3,4)
说明:二维数组中有三个一维数组,每个一维数组中有四个元素
2)案例实操

object DimArray {
	 def main(args: Array[String]): Unit = {
		 //(1)创建了一个二维数组, 有三个元素,每个元素是,含有 4 个元素一维数组()
		 val arr = Array.ofDim[Int](3, 4)
		 arr(1)(2) = 88
		 //(2)遍历二维数组
		 for (i <- arr) { //i 就是一维数组
			 for (j <- i) {
				 print(j + " ")
			 }
			 println()
		 }
	 }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值