In Scala, multidimensional arrays can be represented as arrays of arrays, where each nested array represents a row or a column. The size of the array can be defined using two integer values representing the number of rows and columns, respectively.
Here’s an example code with output that demonstrates the usage of multidimensional arrays in Scala:
object MultiDimArrayExample {
def main(args : Array[String]) : Unit = {
// Create a 2D array of integers with 3 rows and 4 columns
val arr : Array[Array[Int]] = Array.ofDim[Int]( 3 , 4 )
// Initialize the elements of the array
for (i < - 0 until 3 ; j < - 0 until 4 ) {
arr(i)(j) = i + j
}
// Access and print the elements of the array
println( "Printing elements of 2D array:" )
for (i < - 0 until 3 ) {
for (j < - 0 until 4 ) {
print(arr(i)(j) + " " )
}
println()
}
// Create a jagged array of integers with 3 rows and varying number of columns
val jaggedArr : Array[Array[Int]] = Array.ofDim[Int]( 3 , 0 )
jaggedArr( 0 ) = Array( 1 , 2 , 3 )
jaggedArr( 1 ) = Array( 4 , 5 )
jaggedArr( 2 ) = Array( 6 , 7 , 8 , 9 )
// Access and print the elements of the jagged array
println( "Printing elements of jagged array:" )
for (i < - 0 until 3 ) {
for (j < - 0 until jaggedArr(i).length) {
print(jaggedArr(i)(j) + " " )
}
println()
}
}
} |
Printing elements of 2D array: 0 1 2 3 1 2 3 4 2 3 4 5 Printing elements of jagged array: 1 2 3 4 5 6 7 8 9
In this example, we first create a 2D array arr with 3 rows and 4 columns using Array.ofDim(), and initialize the elements using a nested loop. Then, we print the elements of the 2D array using a nested loop.
Next, we create a jagged array jaggedArr with 3 rows and varying number of columns by initializing each row with a different array. Finally, we access and print the elements of the jagged array using a nested loop with a varying upper bound based on the length of each row.
Multidimensional Array is basically an array storing the data in matrix format. For, matrices and table we need multidimensional array. We can create multidimensional array by using Array.ofDim and Array of Array method. Syntax
val arrayname = Array.ofDim[data_type](number of rows, number of cols) or var arrayname = Array(Array(elements), Array(elements))
Scala has a method Array.ofDim to create a multidimensional array. This approach can be used to create arrays of up to five dimensions. Required we need to know the number of rows and columns at creation time. After declaring the array, we add elements to it . Example:
// Scala Program of Multidimensional array // using Array.ofDim object MultiArr
{ def main(args : Array[String])
{
//creating the array of 2 rows and 2 columns
val mymultiarr = Array.ofDim[Int]( 2 , 2 )
//Assigning the values
mymultiarr( 0 )( 0 ) = 2 mymultiarr( 0 )( 1 ) = 7
mymultiarr( 1 )( 0 ) = 3
mymultiarr( 1 )( 1 ) = 4
for (i<- 0 to 1 ; j<- 0 until 2 )
{
print(i, j)
//Accessing the elements
println(" = " + mymultiarr(i)(j))
}
}
} |
Output
(0,0)=2 (0,1)=7 (1,0)=3 (1,1)=4
This gives more control of the process and lets us create “ragged” arrays (where each contained array may be a different size). We can also create a multidimensional array by using Array of Array. In the example below, we have created a multidimensional array using Array of Array. Example:
// Scala Program of Multidimensional array // using Array of Array object MultiArr
{ def main(args : Array[String])
{
// Creating and assigning the values
// to the array
var arr = Array(Array( 0 , 2 , 4 , 6 , 8 ),
Array( 1 , 3 , 5 , 7 , 9 ))
for (i<- 0 to 1 )
{
for (j<- 0 to 4 )
{
// Accessing the values
print(" "+arr(i)(j))
}
println()
}
}
} |
Output:
0 2 4 6 8 1 3 5 7 9
Now, let us consider an example showing the element with (row, column) Example:
// Scala Program of Multidimensional array // using Array of Array object Mad
{ def main(args : Array[String])
{
// Creating and assigning the values to the array
var arr = Array(Array( 0 , 2 , 4 , 6 , 8 ),
Array( 1 , 3 , 5 , 7 , 9 ))
for (i<- 0 to 1 ; j<- 0 until 5 )
{
print(i, j)
//Accessing the elements
println(" = " + arr(i)(j))
}
}
} |
Output:
(0,0)=0 (0,1)=2 (0,2)=4 (0,3)=6 (0,4)=8 (1,0)=1 (1,1)=3 (1,2)=5 (1,3)=7 (1,4)=9