Page Contents
Scala provides a data structure, the array, which stores a fixed-size sequential collection of elements of the same type.
Basic Array Operations
Declaring an Array
var arrayname = new Array[datatype](size) Example: var arr = new Array[Int](3)
Here, arr is declared as an array of type Int that may hold up to three elements.
Inserting Elements
arr(0) = 100 arr(1) = 200 arr(2) = 300
Creating Array with Values (Initial elements)
var arrString = Array("Jan", "Feb", "Mar", "Apr") // Array of Strings. val numbers = Array(1, 2, 3) // Array Of Ints. // Array containing mixed types. val x: Array[Double] = Array(1, 1.0, 1F) val x: Array[Number] = Array(1, 1.0, 1F) val nums = Array[Int]() // Empty Array
Complete Example
object ArrayTest extends App { var numbers = new Array[](5) // Inserting elements in Array. numbers(0) = 100 numbers(1) = 200 numbers(2) = 300 numbers(3) = 400 numbers(4) = 500 // Basic FOR loop over Arrays. for(x <- 0 until numbers.length){ println(numbers(x)) } // Itreate Over Arrays. for (x <- numbers) { println(x) } // Updating elements in Array. numbers(0) = 900 numbers(1) = 800 // Accessing elements in Array. println("Element at 0th index: "+numbers(0)) println("Element at 1st index: "+numbers(1)) }
Output
100 200 300 400 500 100 200 300 400 500 Element at 0th index: 900 Element at 1st index: 800
Multi-Dimensional Arrays
Multi- Dimensional array can be created using Array.ofDim
Syntax
val rows = 2
val cols = 3
val a = Array.ofDim[String](rows, cols)
Output in REPL:
a: Array[Array[String]] = Array(Array(null, null, null), Array(null, null, null))
val x, y, z = 3
val a = Array.ofDim[Int](x, y, z)
Output in REPL:
a: Array[Array[Array[Int]]] = Array(Array(Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0)), Array(Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0)), Array(Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0)))
Example – Two Dimensional Array
object MDArray extends App { val rows = 2 val cols = 3 val a = Array.ofDim[String](rows, cols) // Inserting elements in Array a(0)(0) = "Jan" a(0)(1) = "Feb" a(0)(2) = "Mar" a(1)(0) = "Apr" a(1)(1) = "May" a(1)(2) = "Jun" // Accessing the elements println("First element Row 1: "+a(0)(0)) println("Second element Row 1: "+a(0)(1)) println("Third element Row 1: "+a(0)(2)) // Iterating the array for { i <- 0 until rows j <- 0 until cols } println(s"($i)($j) = ${a(i)(j)}") }
Output
First element Row 1: Jan
Second element Row 1: Feb
Third element Row 1: Mar
(0)(0) = Jan
(0)(1) = Feb
(0)(2) = Mar
(1)(0) = Apr
(1)(1) = May
(1)(2) = Jun
Example – Three Dimensional Array
object ThreeDArray extends App { val x, y, z = 3 val a = Array.ofDim[Int](x, y, z) // Inserting elements in Array a(0)(0)(0) = 100 a(0)(0)(1) = 200 a(0)(0)(2) = 300 a(0)(1)(0) = 400 a(0)(1)(1) = 500 a(0)(1)(2) = 600 // Iterating the array for { i <- 0 until x j <- 0 until y k <- 0 until z } println(s"($i)($j)($k) = ${a(i)(j)(k)}") }
Output
(0)(0)(0) = 100
(0)(0)(1) = 200
(0)(0)(2) = 300
…