Syntax for creating a two-dimensional array

匿名 (未验证) 提交于 2019-12-03 02:27:02

问题:

Consider:

int[][] multD = new int[5][]; multD[0] = new int[10]; 

Is this how you create a two-dimensional array with 5 rows and 10 columns?

I saw this code online, but the syntax didn't make sense.

回答1:

Try the following:

int[][] multi = new int[5][10]; 

... which is a short hand for something like this:

int[][] multi = new int[5][]; multi[0] = new int[10]; multi[1] = new int[10]; multi[2] = new int[10]; multi[3] = new int[10]; multi[4] = new int[10]; 

Note that every element will be initialized to the default value for int, 0, so the above are also equivalent to:

int[][] multi = new int[][]{   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; 


回答2:

We can declare a two dimensional array and directly store elements at the time of its declaration as:

int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}}; 

Here int represents integer type elements stored into the array and the array name is 'marks'. int is the datatype for all the elements represented inside the "{" and "}" braces because an array is a collection of elements having the same data type.

Coming back to our statement written above: each row of elements should be written inside the curly braces. The rows and the elements in each row should be separated by a commas.

Now observe the statement: you can get there are 3 rows and 5 columns, so the JVM creates 3 * 5 = 15 blocks of memory. These blocks can be individually referred ta as:

marks[0][0]  marks[0][1]  marks[0][2]  marks[0][3]  marks[0][4] marks[1][0]  marks[1][1]  marks[1][2]  marks[1][3]  marks[1][4] marks[2][0]  marks[2][1]  marks[2][2]  marks[2][3]  marks[2][4] 


NOTE:
If you want to store n elements then the array index starts from zero and ends at n-1. Another way of creating a two dimensional array is by declaring the array first and then allotting memory for it by using new operator.

int marks[][];           // declare marks array marks = new int[3][5];   // allocate memory for storing 15 elements 

By combining the above two we can write:

int marks[][] = new int[3][5]; 


回答3:

You can create them just the way others have mentioned. One more point to add: You can even create a skewed two-dimensional array with each row, not necessarily having the same number of collumns, like this:

int array[][] = new int[3][]; array[0] = new int[3]; array[1] = new int[2]; array[2] = new int[5]; 


回答4:

The most common idiom to create a two-dimensional array with 5 rows and 10 columns is:

int[][] multD = new int[5][10]; 

Alternatively, you could use the following, which is more similar to what you have, though you need to explicitly initialize each row:

int[][] multD = new int[5][]; for (int i = 0; i 


回答5:

Try:

int[][] multD = new int[5][10]; 

Note that in your code only the first line of the 2D array is initialized to 0. Line 2 to 5 don't even exist. If you try to print them you'll get null for everyone of them.



回答6:

In Java, a two-dimensional array can be declared as the same as a one-dimensional array. In a one-dimensional array you can write like

  int array[] = new int[5]; 

where int is a data type, array[] is an array declaration, and new array is an array with its objects with five indexes.

Like that, you can write a two-dimensional array as the following.

  int array[][];   array = new int[3][4]; 

Here array is an int data type. I have firstly declared on a one-dimensional array of that types, then a 3 row and 4 column array is created.

In your code

int[][] multD = new int[5][]; multD[0] = new int[10]; 

means that you have created a two-dimensional array, with five rows. In the first row there are 10 columns. In Java you can select the column size for every row as you desire.



回答7:

int [][] twoDim = new int [5][5];  int a = (twoDim.length);//5 int b = (twoDim[0].length);//5  for(int i = 0; i 


回答8:

It is also possible to declare it the following way. It's not good design, but it works.

int[] twoDimIntArray[] = new int[5][10]; 


回答9:

int rows = 5; int cols = 10;  int[] multD = new int[rows * cols];  for (int r = 0; r 

Enjoy!



回答10:

Try this way:

int a[][] = {{1,2}, {3,4}};  int b[] = {1, 2, 3, 4}; 


回答11:

These types of arrays are known as jagged arrays in Java:

int[][] multD = new int[3][]; multD[0] = new int[3]; multD[1] = new int[2]; multD[2] = new int[5]; 

In this scenario each row of the array holds the different number of columns. In the above example, the first row will hold three columns, the second row will hold two columns, and the third row holds five columns. You can initialize this array at compile time like below:

 int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}}; 

You can easily iterate all elements in your array:

for (int i = 0; i


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!