I've been trying to figure out what exactly is happening here. I'm just trying to figure out what the 2 lines are doing that I've commented on below. I found this program that doesn't declare the full dimensions of the array (instead of new int[10][5]; it just decides to not declare it by saying 'new int[10][];' It's like the 2nd array length doesn't matter (changing it to 1 or 100 doesn't affect the output).
int[][] tri = new int[10][]; //this lack of giving the size of the 2nd array is strange
for (int r=0; r<tri.length; r++) {
tri[r] = new int[r+1]; //I'm not sure what this line is doing really
}
for (int r=0; r<tri.length; r++) {
for (int a=0; a<tri[r].length; a++) {
System.out.print(tri[r][a]);
}
System.out.println();
}
The first line makes an array of int arrays. There are 10 slots for int arrays created.
The third line creates a new int array and puts it in one of the slots you made at first. The new int array has r+1 spaces for ints in it.
So, the int array in position 0 will have 1 slot for an int. The int array in position 1 will have 2 slots for an int. The overall shape will be:
[
[0],
[0,0],
[0,0,0],
...,
[0,0,0,0,0,0,0,0,0,0]
]
which is hinted at with the variable name tri (it looks like a triangle)
All new int[10][]
is declaring is an array of size 10, containing null
arrays.
In the for
loop, the null
arrays are being instantiated into ever increasing array sizes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With