Java 3D tableau attribuer des valeurs
J'ai un tableau qui ressemble à ceci
static String[][][] School= new String[1000][20][5];
- Dans la première tranche-je enregistrer le nom de la classe
- Dans la seconde, j'ai enregistrer un ID d'un étudiant
- Dans le troisième que j'ai enregistrer des informations sur l'élève (son nom, son nom de famille, etc).
J'ai d'abord attribuer tous les noms de classe, après que j'attribue à chaque classe sa carte d'étudiant et puis je peux compléter leurs informations.
Comment puis-je le faire? Je l'ai essayé avec par exemple
School[i] = "A1";
mais cela ne fonctionne pas.
EDIT: Ou est-il un autre moyen de sauver ce tous les 3 choses? (nom de la classe, ses élèves et de ses iformation)
Vous devez vous connecter pour publier un commentaire.
Considérer la figure qui a 3 Dimension.
Ainsi, lorsque vous insérez
School[0][0][0]="A1"
cela signifie que vous avez entré de l'élément à la position 0,0,0.De 0,0,0 cela vous permettra de déplacer jusqu'à la position 1000,20,5.
Vous pouvez insérer comme ça, Mais vous avez tellement de nombreux éléments.
En 3D les éléments du tableau ressembler
Maintenant comment ajouter des éléments dans le tableau 3D?
À Démarrer, vous pouvez utiliser directement
C'est très pénible tâche dans votre cas, comme vous voulez insérer les détails dans chaque position.
Comme vous l'avez
1000
dossiers.Votre tableau sera comme cela
NOTE:Il est recommandé de ne pas utiliser de tableau 3D à cet effet.
Suggestion:Déclarer une classe avec trois
Strings
créer constructeur avec ces trois paramètres et de mettre des accesseurs et des mutateurs pour obtenir et définir les valeurs parObjects
int[3][4][2] array3D
? Ou est-ce une erreur? Si vous le pouvez, puis dans la version ou jusqu'à la version de java pouvez-vous faire cela dans?Je vais suggérer au lieu d'utiliser un tableau 3D, vous devez créer un
Student
Classe qui va contenir toutes les informations pour un étudiant et Une Classe pourSchoolClass
qui va contenir une liste d'élèves dans la classe et le nom de la classe, et vous pouvez maintenir unArray of SchoolClass
pour servir l'objectif.De cette façon vous serez en mesure de mieux la gérer.
Espère que cette aide
Votre tableau ne ferez pas ce que vous attendez pour le faire.
Pense le tableau comme un tableau 3D, avec à chaque élément un point. Si vous spécifiez un seul indice, vous êtes essentiellement de dire à l'ordinateur "OK, je veux attribuer
"A1"
à cette tranche de la matrice (dans votre exemple, vous essayez de faire quelque chose de semblable àString[][] elementAtI = "A1";
). Maintenant que n'est pas logique, n'est ce pas?Pour arriver à un unique élément dans le tableau, vous devez spécifier tous les trois indices, comme dans l'espace 3D, vous devez spécifier tous les trois coordonnées pour localiser un point:
Ce qui pourrait être une meilleure idée que celle d'un tableau 3D est des objets. Emballer le tout dans une matrice, mais ce n'est pas aussi lisible que d'avoir un
SchoolClass[]
, où chaqueSchoolClass
a unname
et un tableau deStudents
, et chaqueStudent
a unID
,name
, etc.Tout d'abord, les champs variables commencent généralement avec une minuscule avec camel texte de la convention.
Deuxièmement, les tableaux ne fonctionnent pas comme cela. String[][][] détient {{{entrée...}entrée...}entrée...}.
Les entrées peuvent contenir des doublons, ce qui la rend impossible la méthode que vous obtiendrez
{"3A", "1", "PersonName"}
et{"3A", "1", "DifferentPersonName"}
dans la même matrice. Chaque dimension de la matrice est détenant d'autres dimensions, aka{"3A", {"1", {"PersonName"}, {"DifferentPersonName"}}}
, doncSchool[i] = "A1";
est une erreur de syntaxe, parce que vous devez mettre de la Chaîne de caractères[][] String[i][][]:School[i] = {{"A1","PersonName"}};
Je pense qu'une solution serait d'utiliser HashMaps. Les entrées répétées va écraser les uns les autres. Dans ce cas, le code sera: