You can loop over two dimensional array in Java by using two for loops, also known as nested loop. Similarly to loop an n-dimensional array you need n loops nested into each other. Though its not common to see array of more than 3 dimension and 2D arrays is what you will see most of the places. It's one of the most useful data structure in programming world. You can use two dimensional array to make finite state machine (FSM) to solve state based problems, you can use 2D array to create board games like Chess, Sudoku and Tic-Tac-To and you can even use a two dimensional array to create 2D arcade games e.g. Tetris, Super Mario Bros and so on. Whatever you see on your screen is nothing but a 2D array which is populated using tiles. In order to make use of 2D array, you must know how to populate and iterate over it and that's what you will learn in this article. You can think about two dimensional array as matrix which has rows and columns, this help to visualize contents of array. In order to loop over 2D array, we first go through each row and then again we go through each column in every row. That's why we need two loops, nested in each other. Anytime, if you want to come out of nested loop, you can use break statement. If you are absolutely beginner and just started with programming, I recommend to read Head First Programming first. Once you gone through the book, most of the programming concept e.g. array, string, vector will make sense to you.
It's not necessary to start looping from first element e.g. [0, 0] which is first row and first column but if you want to touch every elements this is the right place to start.
Here is the code to loop over 2D array in Java :
You can see that outer loop is going through each row and inner loop is going through each column, this way we go over all elements. In first iteration, all elements of first row is processed. Here is the complete program :
Looping over 2D array in Java
Output :
BTW, Java doesn't really have multi-dimensional arrays, instead you have arrays of arrays (of arrays ...). So, if you want to loop through the first array, you ask for "board[0].length", if you want to loop through the second array, you ask for "board[1].length".
As I told you, multi-dimensional array is one of the popular data structure and can be used to represent board games e.g. Chess, Ludo, Sudoku, Tetris and also equally useful to draw terrains in tile based games. In fact it is one of the most useful data structure in game programming. Another natural use of multi-dimensional array is in matrix maths e.g. matrix multiplication, adding two matrix, transposing matrices etc.
Java Program to Loop over 2D Array in Java
Here is a Java program to iterate over a two dimensional array in Java using traditional for loop. Though its not necessary to use for loop, you can even use while loop or advanced for loop in Java, it make sense to start with this simplest of programming construct. In this example, we have first created a 2 dimensional array of size 4x4, which means 4 rows and 4 columns. Then we have looped over it two times, first time to populate array with integer values and second time to go through each index and print their values.It's not necessary to start looping from first element e.g. [0, 0] which is first row and first column but if you want to touch every elements this is the right place to start.
Here is the code to loop over 2D array in Java :
for (int row = 0; row < board.length; row++) { for (int col = 0; col < board[row].length; col++) { board[row][col] = row * col; } }
You can see that outer loop is going through each row and inner loop is going through each column, this way we go over all elements. In first iteration, all elements of first row is processed. Here is the complete program :
Looping over 2D array in Java
/** * Java Program to demonstrate how to loop over two-dimensional array. * We first loop to populate the array and later to print values. * * @author WINDOWS 8 */ public class TwoDimensionalArrayDemo{ public static void main(String args[]) { // let's create board of 4x4 int[][] board = new int[4][4]; // let's loop through array to populate board for (int row = 0; row < board.length; row++) { for (int col = 0; col < board[row].length; col++) { board[row][col] = row * col; } } // let's loop through array to print each row and column for (int row = 0; row < board.length; row++) { for (int col = 0; col < board[row].length; col++) { board[row][col] = row * col; System.out.print(board[row][col] + "\t"); } System.out.println(); } } }
Output :
0 0 0 0 0 1 2 3 0 2 4 6 0 3 6 9
BTW, Java doesn't really have multi-dimensional arrays, instead you have arrays of arrays (of arrays ...). So, if you want to loop through the first array, you ask for "board[0].length", if you want to loop through the second array, you ask for "board[1].length".
As I told you, multi-dimensional array is one of the popular data structure and can be used to represent board games e.g. Chess, Ludo, Sudoku, Tetris and also equally useful to draw terrains in tile based games. In fact it is one of the most useful data structure in game programming. Another natural use of multi-dimensional array is in matrix maths e.g. matrix multiplication, adding two matrix, transposing matrices etc.
You can extend this technique to loop through multi-dimensional array in Java. You will just need as many loop as many dimension your array has. Remember, you can declare two-dimensional array in Java without specifying length of second dimension.
Further Reading
Further Reading
- What Every Java Developer Should know about Array (see here)
- 22 Array concept Interview Questions in Java (see here)
- How to print array values in Java? (example)
- How to compare two array in Java? (example)
- Data Structures and Algorithm Analysis in Java (see here)

2 comments :
What is the best way to iterate over two dimensional array? is for loop is the only way? can't we use while loop or do while loop? how about Iterator? I heard array implements Iterable interface in Java? And finally, does Java 8 change the way you loop over multi-dimensional array in Java?
how to solve this question please Index 0 represents grades in the range of 90 - 100
Index 1 represents grades in the range of 80 - 89
Index 2 represents grades in the range of 70 - 79
Index 3 represents grades in the range of 60 - 69
Index 4 represents grades in the range of 59 or below
Display the number of A's, B's, C's, D's, and F's; also display the average, highest, and lowest grade.
Here is what your program should look like:
Enter a numeric grade (0-100) or -1 to quit: 90
Enter a numeric grade (0-100) or -1 to quit: 82
Enter a numeric grade (0-100) or -1 to quit: 96
Enter a numeric grade (0-100) or -1 to quit: -1
Number of A grades: 2
Number of B grades: 1
Number of C grades: 0
Number of D grades: 0
Number of F grades: 0
Average is: 89.33
Highest grade is: 96
Lowest grade is: 82
Post a Comment