Ia în considerare:
int[][] multD = new int[5][];
multD[0] = new int[10];
Asta e ca si cum ai crea un tablou bidimensional cu 5 rânduri și 10 coloane?
Am văzut acest cod on-line, dar sintaxa n't sens.
Încercați următoarele:
int[][] multi = new int[5][10];
... care este o scurtă parte pentru ceva de genul asta:
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];
Rețineți că fiecare element va fi inițializat la valoarea implicită pentru int
, 0
, deci cele de mai sus sunt, de asemenea, echivalent cu:
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 }
};
Putem declara un tablou bidimensional și direct stoca elemente la momentul declarației sale ca:
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
Aici int reprezintă tipul întreg de elemente stocate în matrice și matrice este numele 'marks'. int e de date pentru toate elementele reprezentate în interiorul "{" și "}" bretele pentru că o matrice este o colecție de elemente care au același tip de date.
Venind înapoi la declarație scrisă de mai sus: fiecare rând de elemente ar trebui să fie scris în interiorul acolade. Rândurile și elementele din fiecare rând ar trebui să fie separate printr-o virgulă.
Acum observa declarație: puteți obține acolo sunt 3 rânduri și 5 coloane, astfel încât JVM creează 3 * 5 = 15 blocuri de memorie. Aceste blocuri pot fi individual menționate ta ca:
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]
NOTĂ:
Dacă doriți să stocați n elemente de atunci array index începe de la zero și se termină la n-1.
Un alt mod de a crea un tablou bidimensional este de declarare matrice în primul rând și apoi alocarea de memorie pentru ea, cu ajutorul noului operator.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
Prin combinarea celor două de mai sus putem scrie:
int marks[][] = new int[3][5];
Le puteți crea doar modul în care alții au menționat. Un punct mai mult pentru a adăuga: puteți crea chiar un denaturate tablou bidimensional cu fiecare rând, nu neapărat având același număr de collumns, astfel:
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
Cele mai frecvente idiom pentru a crea un tablou bidimensional cu 5 rânduri și 10 coloane este:
int[][] multD = new int[5][10];
Alternativ, ai putea folosi următoarele, care este mult mai asemanatoare cu ceea ce ai, dacă aveți nevoie pentru a inițializa în mod explicit fiecare rând:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Încercați:
int[][] multD = new int[5][10];
Rețineți că în codul doar prima linie din matrice 2D este inițializat la 0.
Linia 2 la 5 nu't chiar exista. Dacă încercați să imprimați-le te'll null
pentru fiecare dintre ele.
În Java, un tablou bidimensional pot fi declarate ca fiind la fel ca un tablou unidimensional. Într-un tablou unidimensional poate scrie ca
int array[] = new int[5];
unde int este un tip de date, matrice[] este o matrice declarație, și noua matrice este o matrice cu obiecte cu cinci indici.
Astfel că, puteți scrie un tablou bidimensional fi următoarele.
int array[][];
array = new int[3][4];
Aici "matrice" este un int tip de date. Trebuie în primul rând declarat un tablou unidimensional a care tipuri, apoi o 3 rânduri și 4 coloane matrice este creat.
În codul dvs.
int[][] multD = new int[5][];
multD[0] = new int[10];
înseamnă că ați creat un tablou bidimensional, cu cinci rânduri. În în primul rând există 10 coloane. În Java, puteți selecta dimensiunea coloanei pentru fiecare rând cum doriti.
int [][] twoDim = new int [5][5];
int a = (twoDim.length);//5
int b = (twoDim[0].length);//5
for(int i = 0; i < a; i++){ // 1 2 3 4 5
for(int j = 0; j <b; j++) { // 1 2 3 4 5
int x = (i+1)*(j+1);
twoDim[i][j] = x;
if (x<10) {
System.out.print(" " + x + " ");
} else {
System.out.print(x + " ");
}
}//end of for J
System.out.println();
}//end of for i
Incearca in felul urmator:
int a[][] = {{1,2}, {3,4}};
int b[] = {1, 2, 3, 4};
Aceste tipuri de rețele sunt cunoscute ca zimțate tablouri în Java:
int[][] multD = new int[3][];
multD[0] = new int[3];
multD[1] = new int[2];
multD[2] = new int[5];
În acest scenariu fiecare rând din matrice deține un număr diferit de coloane. În exemplul de mai sus, în primul rând, în trei coloane, cel de-al doilea rând se va ține două coloane, și în al treilea rând, deține cinci coloane. Puteți inițializa această matrice la compilare ca mai jos:
int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};
Puteți repeta cu ușurință toate elementele din matrice:
for (int i = 0; i<multD.length; i++) {
for (int j = 0; j<multD[i].length; j++) {
System.out.print(multD[i][j] + "\t");
}
System.out.println();
}