本文主要是介绍Scala学习笔记 --- 数组操作Array、ArrayBuffer以及遍历数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、Array
在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组。
此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java的数组。
例如字符串数组在底层就是Java的String[],整个数组在底层就是Java的Int[];
数组初始化后,长度就固定下来了,而且元素的全部根据其类型初始化;
也可以直接使用Array()创建数组,元素类型自动推断;
val a = new Array[Int](10)
val b = new Array[String](10)
a(0) = 1
println(a(0))
b(0) = "22"
println(b(0))
val c = Array("Hello", "World")
println(c(0))
println(c(1))
val d = Array("leo", 30)
println(d(0))
println(d(1))
println(d(2))
二、ArrayBuffer
在Scala中,如果需要类似于Java中的ArrayList这种长度可变的集合头,则可以使用ArrayBuffer;
使用ArrayBuffer需要引入对应的包:
import scala.collection.mutable.ArrayBuffer
-
ArrayBuffer添加元素需要使用 += 的方式添加,例如:
val e = ArrayBuffer[Int]()
e += 1
println(e(0))
-
以及添加多个元素如下:
e += (2, 3, 4, 5 ,6)
println(e(1))
println(e(2))
println(e(3))
println(e(4))
println(e(5))
-
ArrayBuffer添加数组Array
e ++= Array(7, 8, 9, 10)
println(e(6))
println(e(7))
println(e(8))
println(e(9))
-
ArrayBuffer截断后五个元素的操作是
e.trimEnd(5)
println(e(0))
println(e(1))
println(e(2))
println(e(3))
println(e(4))
-
ArrayBuffer插入单个数据元素是,在下标为5的地方插入6
e.insert(5, 6)
println(e(5))
-
插入多个数据元素,在下标为6的地方插入 7,8,9, 10
e.insert(6, 7, 8, 9, 10)
println(e(6))
println(e(7))
println(e(8))
println(e(9))
-
清除元素使用remove函数,清除下标是1的元素
e.remove(1)
println(e(1))
-
清除元素使用remove函数,我们从下标是1的地方开始清除3个元素
e.remove(1, 3)
println(e(1))
println(e(2))
println(e(3))
-
ArrayBuffer转换为Array
val eArray = e.toArray
-
Array转换为ArrayBuffer
val aArrayBuffer = a.toBuffer
三、遍历Array 和 ArrayBuffer (共四种方式)
我们使用for循环和until遍历Array/ArrayBuffer
-
使用until是RichInt提供的函数, 从0开始,但是不包含b.length
for (i <- 0 until b.length) {println(b(i))
}
-
可以每次间隔2的情况下遍历
for (i <- 0 until (b.length, 2)) {println(b(i))
}
-
如果想从尾部遍历的话
for (i <- (0 until b.length).reverse) {println(b(i))
}
-
使用增强for循环的方式来遍历
for (i <- b) {println(i)
}
这篇关于Scala学习笔记 --- 数组操作Array、ArrayBuffer以及遍历数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!