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.
java
multidimensional-array
AppSensei
la source
la source
Réponses:
Essayez ce qui suit:
... qui est une main courte pour quelque chose comme ça:
Notez que chaque élément sera initialisé à la valeur par défaut
int
,0
, donc ci - dessus sont également équivalent à:la source
new int[][]
en=new int[][]{...}
variante? Pouvons-nous simplement écrire={...}
?new
mot clé.int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? lequel est légal car j'ai lu les deux versions quelque part.Nous pouvons déclarer un tableau à deux dimensions et stocker directement les éléments au moment de sa déclaration comme:
Ici, int représente des éléments de type entier stockés dans le tableau et le nom du tableau est «marques». int est le type de données pour tous les éléments représentés à l'intérieur des accolades "{" et "}" car un tableau est une collection d'éléments ayant le même type de données.
Pour en revenir à notre déclaration écrite ci-dessus: chaque ligne 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 des virgules.
Observez maintenant la déclaration: vous pouvez obtenir 3 lignes et 5 colonnes, de sorte que la JVM crée 3 * 5 = 15 blocs de mémoire. Ces blocs peuvent être appelés individuellement:
REMARQUE:
si vous souhaitez stocker n éléments, l'index du tableau commence à zéro et se termine à n-1 . Une autre façon de créer un tableau bidimensionnel consiste à déclarer d'abord le tableau, puis à lui allouer de la mémoire à l'aide d'un nouvel opérateur.
En combinant les deux ci-dessus, nous pouvons écrire:
la source
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:
la source
int array[][] = new int[3][];
VSint array[][] = new int[][3];
?? lequel est légal car j'ai lu les deux versions quelque part.L'idiome le plus courant pour créer un tableau à deux dimensions avec 5 lignes et 10 colonnes est:
Alternativement, vous pouvez utiliser ce qui suit, qui est plus similaire à ce que vous avez, mais vous devez initialiser explicitement chaque ligne:
la source
Object[][] ary2d = new Object[5][10];
quel, vous devez toujours initialiser chaque élément du tableau 2D.null
boîtier en toute sécurité pour les non primitifs. Que vous deviez ou non initialiser chaque élément dépend entièrement de votre conception. Aussi, juste pour clarifier - les primitives ne peuvent pas être nulles et obtenir une instanciation à une valeur par défaut définie si elles ne sont pas attribuées par vous. Par exemple, unint
ne peut pas être nul et lorsque vous ditesint i;
sans affecter de valeur, celle par défaut0
est utilisée. Lisez à ce sujet iciIl est également possible de le déclarer de la manière suivante. Ce n'est pas un bon design, mais ça marche.
la source
Essayer:
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'eux.la source
la source
En Java, un tableau bidimensionnel peut être déclaré identique à un tableau unidimensionnel. Dans un tableau unidimensionnel, vous pouvez écrire comme
où int est un type de données, array [] est une déclaration de tableau et
new array
est un tableau avec ses objets avec cinq index.Comme ça, vous pouvez écrire un tableau à deux dimensions comme suit.
Voici
array
un type de données int. J'ai tout d'abord déclaré sur un tableau unidimensionnel de ce type, puis un tableau à 3 lignes et 4 colonnes est créé.Dans votre code
signifie que vous avez créé un tableau à deux dimensions, avec cinq lignes. Dans la première ligne, il y a 10 colonnes. En Java, vous pouvez sélectionner la taille de colonne pour chaque ligne comme vous le souhaitez.
la source
Prendre plaisir!
la source
Essayez de cette façon:
la source
Ces types de tableaux sont connus sous le nom de tableaux dentelés en Java:
Dans ce scénario, chaque ligne du tableau contient le nombre différent de colonnes. Dans l'exemple ci-dessus, la première ligne contiendra trois colonnes, la deuxième ligne contiendra deux colonnes et la troisième ligne contiendra cinq colonnes. Vous pouvez initialiser ce tableau au moment de la compilation comme ci-dessous:
Vous pouvez facilement parcourir tous les éléments de votre tableau:
la source
En fait, Java n'a pas de tableau multidimensionnel au sens mathématique. Ce que Java a, c'est juste un tableau de tableaux, un tableau où chaque élément est également un tableau. C'est pourquoi l'exigence absolue de l'initialiser est la taille de la première dimension. Si le reste est spécifié, il créera un tableau rempli avec la valeur par défaut.
Cela nous donne également une bizarrerie. La taille du sous-tableau ne peut pas être modifiée en ajoutant plus d'éléments, mais nous pouvons le faire en attribuant un nouveau tableau de taille arbitraire.
la source