Comment insérer des valeurs dans le tableau à deux dimensions par programmation?
Je veux le faire de manière dynamique en java. Je sais comment insérer des valeurs dans une seule matrice dimensionnelle. Je suis un peu confus dans le tableau à deux dimensions.
static final String shades[][] = {
//Shades of grey
{
"lightgrey",
"dimgray",
"sgi gray 92",
},
//Shades of blue
{
"dodgerblue 2",
"steelblue 2",
"powderblue",
},
//Shades of yellow
{
"yellow 1",
"gold 1",
"darkgoldenrod 1",
},
//Shades of red
{
"indianred 1",
"firebrick 1",
"maroon",
}
};
Vous devez vous connecter pour publier un commentaire.
Essayer de code ci-dessous,
Vous ne pouvez pas "ajouter" des valeurs à un tableau comme le tableau de longueur est immuable. Vous pouvez définir des valeurs spécifiques à des positions de tableau.
Si vous savez comment le faire avec des tableaux unidimensionnels, alors vous savez comment le faire avec n-dimensions des tableaux: Il n'y a pas de n-dimensions des tableaux en Java, seulement des tableaux de tableaux de tableaux...).
Mais vous pouvez la chaîne de l'opérateur index de l'élément de tableau d'accès.
Remarque les dimensions de l'enfant, les tableaux n'ont pas besoin de correspondre.
En pensez en tant que tableau de tableau.
Si vous faites cela, str[x][y], alors il est tableau de longueur x où chaque élément contient à son tour tableau de longueur y. En java, il n'est pas nécessaire pour la deuxième dimension pour avoir la même longueur.
Donc, pour x=i vous pouvez avoir y=m et x=j, vous pouvez avoir y=n
Pour cela, votre déclaration ressemble à
String[][] test = new String[4][];
test[0] = new String[3];
test[1] = new String[2];
etc..
Dans le cas où vous ne savez pas à l'avance combien d'éléments que vous devrez gérer il pourrait être une meilleure solution pour utiliser les collections de la place (https://en.wikipedia.org/wiki/Java_collections_framework). Il serait aussi possible de créer un nouveau grand tableau en 2 dimensions, copiez le vieux de données et insérer les nouveaux éléments, mais, de la collection framework gère automatiquement pour vous.
Dans ce cas vous pouvez utiliser une Carte de Chaînes à des Listes de Chaînes de caractères:
c'est la sortie de ce programme
elem
dans la dernière cellule en raison deint c = row -1
au lieu deint c = 0
(même pourd
).size
en provenance de la boucle sur votre "matrice carrée" ?