Open In App

Multidimensional Arrays in Scala

Last Updated : 11 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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:

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()
    }
  }
}


Output

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))

Multidimensional array by using Array.ofDim

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




// 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
Multidimensional Array by using Array of Array

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




// 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




// 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


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads