Practical Coding in Java

Learn to write and validate your own code

Darren Kessner, PhD

(revised January 9, 2026)

Previous: 10. 2D Arrays

Hello2DArrays

//
// Hello2DArrays.java
//


public class Hello2DArrays
{
    public static void doStuff(int[][] values)
    {
        System.out.println("Hello, 2D Arrays!\n");

        System.out.println("values.length: " + values.length);
        System.out.println("values[0][0]: " + values[0][0]);
        System.out.println("values[2][1]: " + values[2][0]);
        // System.out.println("values[2][1]: " + values[2][1]); // array out of bounds exception
        System.out.println();

        System.out.println("values:");
        printStuff(values);
    }

    public static void printStuff(int[][] values)
    {
        // demonstration of a for loop to iterate through 2D array

        for (int i=0; i<values.length; i++) // for each row
        {
            // print the ith row

            for (int j=0; j<values[i].length; j++) 
            {
                System.out.print(values[i][j] + " "); // no newline
            }

            System.out.println(); // print a newline
        }

        System.out.println();
    }

    public static void printStuff2(int[][] values)
    {
        // demonstration of a for-each loop to iterate through 2D array

        for (int[] row : values) // for each row
        {
            for (int value : row) 
            {
                System.out.print(value + " ");
            }

            System.out.println();
        }

        System.out.println();
    }


    public static int[][] createDiagonalArray()
    {
        // creates, initializes, and returns a new 2D array 

        int[][] result = new int[10][10];

        // fill in 1 on diagonal, 0 everywhere else

        for (int i=0; i<10; i++)
        {
            for (int j=0; j<10; j++)
            {
                if (i == j)
                    result[i][j] = 1;
                else
                    result[i][j] = 0;
            }
        }
        
        return result;
    }


    public static int sum(int[][] values)
    {
        int total = 0;

        for (int[] row : values)
        {
            for (int value : row)
                total += value;
        }

        return total;
    }

    public static void main(String[] args)
    {
        int[][] values = { 
            {1, 3, 5}, 
            {2, 4}, 
            {6} 
        };

        doStuff(values);

        // initialization

        int[][] diagonal = createDiagonalArray();
        System.out.println("diagonal:");
        printStuff2(diagonal);

        // computation

        System.out.println("sum(values):" + sum(values));  // 21
        System.out.println("sum(diagonal):" + sum(diagonal));  // 10
    }
}

Output:

Hello, 2D Arrays!

values.length: 3
values[0][0]: 1
values[2][1]: 6

values:
1 3 5 
2 4 
6 

diagonal:
1 0 0 0 0 0 0 0 0 0 
0 1 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 0 1 0 
0 0 0 0 0 0 0 0 0 1 

sum(values):21
sum(diagonal):10

Next: