Scala Array 数组

引言

Scala 数组分为两大类 可变(mutable) 和 不可变(immutable)

Array() 数组介绍

Array 为不可变数组

不可变是指 内存地址不变,一但确定,数组的长度不能变

创建

val ints: Array[Int] = Array(1, 2, 3, 4, 5)

数组取值

注意是()

ints(0)

修改元素

updata(索引,新值)

// 按照索引修改
ints.update(1,10)  // updata(索引,新值)

添加元素

不可变数组 添加元素 是指添加后产生新的数组,并不是在原数组添加

// 注意连接的符号

val ints1 = ints :+ 12
println(ints1.mkString(","))
----------------------------
1,2,3,4,5,12

val ints2 = 15 +: ints 
println(ints2.mkString(","))
----------------------------
12,1,2,3,4,5

遍历数组

使用 for 循环遍历

for (elem <- ints) {
            println(elem)
        }

使用方法 foreach(函数) 函数返回值要是 Unit

函数接收的参数就是数组的元素

// 下面是简化过程
ints.foreach((i: Int) => {println(i)})
ints.foreach(println(_))
ints.foreach(println)

ArrayBuffer() 介绍

ArrayBuffer() 为可变数组

创建

val arrayBuffer: ArrayBuffer[String] = ArrayBuffer("a", "b", "c", "d")

添加元素

insert(索引, 新元素) 插入元素

arrayBuffer.insert(1, "B")
println(arrayBuffer.mkString(","))
----------------------------------
a,B,b,c,d

+= 组合元素

+== 组合数组

arrayBuffer += "e"
println(arrayBuffer.mkString(",")
---------------------------------
a,b,c,d,e

arrayBuffer++=Array("a","zz")
println(arrayBuffer.mkString(",")
---------------------------------
a,b,c,d,e,a,zz

删除元素

使用索引删除

arrayBuffer.remove(1) // 索引删除
arrayBuffer.remove(1,2) // 从索引开始删几个
arrayBuffer-=1

删除数组中的指定元素

数组中没有找到也不会报错

arrayBuffer--=Array("a")

修改元素

arrayBuffer(0) = "A"

查看元素

// 通过索引获取
println(arrayBuffer(0))

遍历数组

// 函数
arrayBuffer.foreach(println(_))

// for 循环
for(buffer <- arrayBuffer){
    println(buffer)
}

数组可变性的转换

可变转不可变 toArray

val array: Array[String] = arrayBuffer.toArray

不可变转可变 toBuffer

val buffer1: mutable.Buffer[Int] = ints.toBuffer
发表评论 / Comment

用心评论~