数组相关操作
1.定长数组
- 如果需要一个长度不变的数组,可以用Scala中的Array。
val nums = new Array[Int] (10) //10个整数的数组,所有元素初始化为0
- 使用()而不是[]来访问元素
s(0) = “Goodbye” //Array(“GOODbye”,“World”)
2.变长数组:数组缓冲
对于那种长度按需要变化的数组,Java有ArrayList,C++有vector。Scala中的等效数据结构为ArrayBuffer。
- val b = ArrayBuffer[Int]() //或者 new ArrayBuffer[Int], 一个空的数组缓冲,准备存放整数
- b += 1 //ArrayBuffer(1),用+=在尾端添加元素
- b ++= (1,2,3,5) //ArrayBuffer(1,1,2,3,5),用+=在尾端添加元素
- b ++= ArrayBuffer(8,13,21) //ArrayBuffer(1,1,2,3,5,8,13,21),用可以++=操作符追加任何集合
3.遍历数组和数组缓冲
- for循环遍历数组或数组缓冲的语法
for(i <- 0 unitl a.length)
- 如果想要每两个元素一条,可以让i这样来进行遍历:
0 until (a.length, 2) //Range(0,2,4)
- 如果从数组的尾部开始,遍历的写法为:
(0 until a.length).reverse //Range(...,2,1,0)
- 如果在循环体中不需要用到数组下标,也可以直接访问数组元素
for (ele <-a) println(elem)