Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Two-Dimensional Arrays | Arrays
Introduction to Scala

bookTwo-Dimensional Arrays

Up to this point, we have created and dealt only with one-dimensional array. However, like many other programming languages, Scala also supports multidimensional arrays.

Most of the time, though, programmers work with only one-dimensional and two-dimensional arrays. Three-dimensional arrays are also used but extremely rarely, and only for some very specific cases (e.g., working with images). However, you can also create n-dimensional arrays in Scala where n can be pretty large.

What is a 2D Array?

Once again, in order to work with 2D arrays, we have to understand what they actually are.

It can be easily visualized as a table or a grid consisting of rows and columns. Basically, you can think of a 2D array as a matrix with m rows and n columns, where m and n are positive integers.

Let's take a look at the general syntax of declaring a 2D array variable in Scala:

Main.java

Main.java

copy
1
var arrayName = Array.ofDim[dataType](m, n)

The ofDim method is a method which creates an array where each element is an array itself, allowing for multiple dimensions. Once again, arrayName is simply a variable name, dataType is the data type of the array elements, m and n are the number of rows and columns, respectively.

Similarly to 1D arrays, we can declare a 2D array with predefined elements. Here's an example:

Main.java

Main.java

copy
12345
var matrix = Array( Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9), Array(10, 11, 12))

Here, for our 2D array we create 4 1D arrays with 3 predefined elements, so we get a 4x3 2D array.

Indexing in 2D Arrays

Let's first take a look at the visualization of the 2D array which we created in the example above:

As you can see, the indexing in 2D arrays is similar to that of 1D arrays. Basically, rows (1D arrays) are indexed by integers from 0 to n - 1 (3 in our case), where n is the number of rows, and columns from 0 to m - 1 (2 in our case), where m is the number of columns.

To access a particular element in a 2D array, we have to specify its row index and column index. For instance, the element with the value of 8 in our example has 2 and 1 as its row and column indices, respectively.

Let's now take a look at the code:

Main.java

Main.java

copy
12345678910
object Main { def main(args: Array[String]): Unit = { var matrix = Array( Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9), Array(10, 11, 12)) println(matrix(2)(1)) } }

We can also manually fill a 2D array with elements using indices:

Main.java

Main.java

copy
123456789
object Main { def main(args: Array[String]): Unit = { var matrix = Array.ofDim[Int](2, 2) matrix(0)(0) = 23 matrix(0)(1) = 54 matrix(1)(0) = 68 matrix(1)(1) = 10 } }

Here is how we can visualize this 2x2 2D array:

Now, it's time to test our knowledge.

question mark

What will be printed?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Pergunte-me perguntas sobre este assunto

Resumir este capítulo

Mostrar exemplos do mundo real

Awesome!

Completion rate improved to 2.86

bookTwo-Dimensional Arrays

Deslize para mostrar o menu

Up to this point, we have created and dealt only with one-dimensional array. However, like many other programming languages, Scala also supports multidimensional arrays.

Most of the time, though, programmers work with only one-dimensional and two-dimensional arrays. Three-dimensional arrays are also used but extremely rarely, and only for some very specific cases (e.g., working with images). However, you can also create n-dimensional arrays in Scala where n can be pretty large.

What is a 2D Array?

Once again, in order to work with 2D arrays, we have to understand what they actually are.

It can be easily visualized as a table or a grid consisting of rows and columns. Basically, you can think of a 2D array as a matrix with m rows and n columns, where m and n are positive integers.

Let's take a look at the general syntax of declaring a 2D array variable in Scala:

Main.java

Main.java

copy
1
var arrayName = Array.ofDim[dataType](m, n)

The ofDim method is a method which creates an array where each element is an array itself, allowing for multiple dimensions. Once again, arrayName is simply a variable name, dataType is the data type of the array elements, m and n are the number of rows and columns, respectively.

Similarly to 1D arrays, we can declare a 2D array with predefined elements. Here's an example:

Main.java

Main.java

copy
12345
var matrix = Array( Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9), Array(10, 11, 12))

Here, for our 2D array we create 4 1D arrays with 3 predefined elements, so we get a 4x3 2D array.

Indexing in 2D Arrays

Let's first take a look at the visualization of the 2D array which we created in the example above:

As you can see, the indexing in 2D arrays is similar to that of 1D arrays. Basically, rows (1D arrays) are indexed by integers from 0 to n - 1 (3 in our case), where n is the number of rows, and columns from 0 to m - 1 (2 in our case), where m is the number of columns.

To access a particular element in a 2D array, we have to specify its row index and column index. For instance, the element with the value of 8 in our example has 2 and 1 as its row and column indices, respectively.

Let's now take a look at the code:

Main.java

Main.java

copy
12345678910
object Main { def main(args: Array[String]): Unit = { var matrix = Array( Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9), Array(10, 11, 12)) println(matrix(2)(1)) } }

We can also manually fill a 2D array with elements using indices:

Main.java

Main.java

copy
123456789
object Main { def main(args: Array[String]): Unit = { var matrix = Array.ofDim[Int](2, 2) matrix(0)(0) = 23 matrix(0)(1) = 54 matrix(1)(0) = 68 matrix(1)(1) = 10 } }

Here is how we can visualize this 2x2 2D array:

Now, it's time to test our knowledge.

question mark

What will be printed?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
some-alt