Considérer:
int[][] multD = new int[5][];
multD[0] = new int[10];
Est-ce ainsi que vous créez un tableau à deux dimensions avec 5 lignes et 10 colonnes?
J'ai vu ce code en ligne, mais la syntaxe n'avait pas de sens.
Essayez ce qui suit:
int[][] multi = new int[5][10];
... qui est une main courte pour quelque chose comme ceci:
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];
Notez que chaque élément sera initialisé à la valeur par défaut pour int
, 0
, aussi ce qui précède est-il équivalent à:
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 }
};
Nous pouvons déclarer un tableau à deux dimensions et stocker directement les éléments au moment de sa déclaration en tant que:
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
Ici int représente des éléments de type entier stockés dans le tableau et le nom du tableau est 'marks'. int est le type de données de tous les éléments représentés entre les accolades "{" et "}" car un tableau est une collection d'éléments ayant le même type de données.
Pour revenir à notre déclaration écrite ci-dessus: chaque rangée d'éléments doit être écrite à l'intérieur des accolades. Les lignes et les éléments de chaque ligne doivent être séparés par une virgule.
Observez maintenant l’instruction suivante: vous pouvez obtenir 3 lignes et 5 colonnes. La machine virtuelle Java crée donc 3 * 5 = 15 blocs de mémoire. Ces blocs peuvent être désignés individuellement comme:
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]
REMARQUE:
Si vous voulez stocker des éléments n, l'index de tableau commence à zéro et se termine à n-1. Une autre façon de créer un tableau à deux dimensions consiste à le déclarer d'abord, puis à lui allouer de la mémoire en utilisant un nouvel opérateur.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
En combinant les deux ci-dessus, nous pouvons écrire:
int marks[][] = new int[3][5];
Vous pouvez les créer exactement comme d'autres l'ont mentionné. Un dernier point à ajouter: vous pouvez même créer un tableau bidimensionnel asymétrique avec chaque ligne, sans nécessairement avoir le même nombre de colonnes, comme ceci:
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
L'idiome le plus courant pour créer un tableau à deux dimensions avec 5 lignes et 1 colonnes est:
int[][] multD = new int[5][10];
Vous pouvez également utiliser les éléments suivants, qui sont plus similaires à ce que vous avez, bien que vous deviez initialiser explicitement chaque ligne:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Il est également possible de le déclarer de la manière suivante. Ce n'est pas un bon design, mais ça marche.
int[] twoDimIntArray[] = new int[5][10];
Essayer:
int[][] multD = new int[5][10];
Notez que dans votre code, seule la première ligne du tableau 2D est initialisée à 0. Les lignes 2 à 5 n'existent même pas. Si vous essayez de les imprimer, vous obtiendrez null
pour chacun d'entre eux.
En Java, un tableau à deux dimensions peut être déclaré identique à un tableau à une dimension. Dans un tableau unidimensionnel, vous pouvez écrire comme
int array[] = new int[5];
où int est un type de données, array [] est une déclaration de tableau et new array
est un tableau avec ses objets à cinq index.
Comme cela, vous pouvez écrire un tableau à deux dimensions comme suit.
int array[][];
array = new int[3][4];
Ici, array
est un type de données int. J'ai d'abord déclaré sur un tableau unidimensionnel de ces types, puis un tableau de 3 lignes et 4 colonnes est créé.
Dans votre code
int[][] multD = new int[5][];
multD[0] = new int[10];
signifie que vous avez créé un tableau à deux dimensions, avec cinq lignes. Dans la première rangée, il y a 10 colonnes. Dans Java, vous pouvez sélectionner la taille de la colonne pour chaque ligne de votre choix.
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
int rows = 5;
int cols = 10;
int[] multD = new int[rows * cols];
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < cols; c++)
{
int index = r * cols + c;
multD[index] = index * 2;
}
}
Prendre plaisir!
Essayez de cette façon:
int a[][] = {{1,2}, {3,4}};
int b[] = {1, 2, 3, 4};
Ces types de tableaux sont connus sous le nom de tableaux dentelés en Java:
int[][] multD = new int[3][];
multD[0] = new int[3];
multD[1] = new int[2];
multD[2] = new int[5];
Dans ce scénario, chaque ligne du tableau contient le nombre différent de colonnes. Dans l'exemple ci-dessus, la première rangée contiendra trois colonnes, la deuxième rangée deux colonnes et la troisième rangée cinq colonnes. Vous pouvez initialiser ce tableau au moment de la compilation comme ci-dessous:
int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};
Vous pouvez facilement itérer tous les éléments de votre tableau:
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();
}