Syntax for creating a two-dimensional array in Java
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
In Java, a two-dimensional array is essentially an array of arrays, where each element within the main array is also an array. These are often used in scenarios where you need a matrix, a table, or any kind of grid structure. Two-dimensional arrays can store values of a designated type, and they can be manipulated to perform various data operations, such as sorting, searching, or complex mathematical computations.
Declaring a Two-Dimensional Array
To declare a two-dimensional array in Java, you specify the type of elements the array will hold, followed by two pairs of square brackets. Here is how you can declare a two-dimensional array that will store integer values:
Instantiating a Two-Dimensional Array
After declaring an array, you must instantiate it using the new keyword before you can use it. When instantiating, you need to specify the size of the array in terms of rows and columns:
Here, matrix has 5 rows and 10 columns. You can access the array's elements using row and column indices, which start at 0. For example, to access the element at the first row and first column, you use:
Initializing a Two-Dimensional Array
There are multiple ways to initialize a two-dimensional array in Java. You can either initialize it statically upon declaration or dynamically using loops.
Static Initialization:
This piece of code creates a 3x3 matrix filled with the numbers from 1 to 9. Each row is defined within curly braces, and the entire set is enclosed in another pair of braces.
Dynamic Initialization:
If you want to fill the array with user input or based on some function, you can use loops:
Array Dimensions
A two-dimensional array need not be symmetrical, meaning the length of each row can differ:
This code initiates a so-called jagged array, or ragged array, where each row has a different length.
Common Operations
Common operations with two-dimensional arrays involve manipulating individual elements, iterating through arrays, and multi-dimensional slicing for subarrays.
For example, to print all elements:
Summary Table of Key Points:
| Key Aspect | Detail |
| Declaration | type[][] arrayName; |
| Instantiation | arrayName = new type[rows][cols]; |
| Static Initialization | type[][] arrayName = {{val1, val2}, {val3, val4}}; |
| Dynamic Initialization | Use nested loops to assign values
array[i][j] = value; |
| Accessing Elements | arrayName[i][j] where i and j denote the row and column index, respectively. |
| Jagged Arrays | Creating arrays with rows of variable lengths
int[][] array = new int[rows][]; |
Understanding and utilizing two-dimensional arrays effectively can significantly enhance the ability to solve problems that involve complex data structures or require simulation of spatial arrangements.
Related reading
- Tail Recursive Tree Traversal without Loops
- Take multiple lists into dataframe
- Take n random elements from a ListE?
- Take the content of a list and append it to another list
- System.currentTimeMillis() vs. new Date() vs. Calendar.getInstance().getTime()
- System.currentTimeMillis vs System.nanoTime
- Tarjan cycle detection help C
- Tarjan's strongly-connected components algorithm - why index in the back edge?

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.