Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

For each loop using 2D array

This is the snippet of Java code:

int[][] uu = new int[1][1];
uu[0][0] = 5;
for(int[] u: uu){
    System.out.println(u[0]);
}

It prints 5. But why does the declaration part of for loop is declared as int[] u, but not as int[][] u?

At the uu you reference 2D array... That is not a homework. I am preparing for Java certification. Cheers

like image 530
uml Avatar asked Nov 14 '12 17:11

uml


2 Answers

Since your uu is an array of array. So, when you iterate over it, you will first get an array, and then you can iterate over that array to get individual elements.

So, your outer loop has int[] as type, and hence that declaration. If you iterate through your u in one more inner loop, you will get the type int: -

for (int[] u: uu) {
    for (int elem: u) {
        // Your individual element
    }
}
like image 176
Rohit Jain Avatar answered Oct 07 '22 14:10

Rohit Jain


It is because uu is an array of int[] arrays. So every item in it is int[]. In a for loop you declare the type of an item in an array you iterate over.

like image 4
ShyJ Avatar answered Oct 07 '22 14:10

ShyJ