Probléme avec les tableaux en java
rwikus
Messages postés
994
Statut
Membre
-
danimo -
danimo -
Bonjour,
voia depuis un bon moment je plante face a ce morceau de code qui devrai marcher sans probléme mais eclipse m'affiche toujours sa:
Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:13)
voila le code:
public static void main(String[] args) {
int tab[][]=new int[4][];
int t[]={1,2,3,4};
tab[0]=t;
int t2[]={1,2,3,4};
tab[1]=t2;
for(int i=0;i<tab.length;i++){
for(int j=0;j<tab[i].length;j++){
System.out.print(tab[i][j]);
System.out.print(" ");
}
System.out.println();
}
merci de bien vouloir m'aider.
voia depuis un bon moment je plante face a ce morceau de code qui devrai marcher sans probléme mais eclipse m'affiche toujours sa:
Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:13)
voila le code:
public static void main(String[] args) {
int tab[][]=new int[4][];
int t[]={1,2,3,4};
tab[0]=t;
int t2[]={1,2,3,4};
tab[1]=t2;
for(int i=0;i<tab.length;i++){
for(int j=0;j<tab[i].length;j++){
System.out.print(tab[i][j]);
System.out.print(" ");
}
System.out.println();
}
merci de bien vouloir m'aider.
Configuration: Windows 7 / Firefox 3.6
3 réponses
-
Salut,
Non çà ne peut pas marcher avec:
int tab[][]=new int[4][];
Un tableau de ce type peut être considéré comme une table de x lignes de y colonnes.
Il faudrait que ton tableau (multi dimensions) soit d'éclaré comme ceci:
int tab[][]=new int[x][y];
Or tu le déclares avec x = 4 et y = rien, soit 4 lignes, pas de colonnes...
Et en plus, il faudrait que tu nous dises exactement ce que tu veux faire pour qu'on puisse analyser le code qui suit.
Cordialement,
dan -
voila le morceau de code qui m'a intrigué: et pour les x et les y je suis d'accord avec toi sauf pour les "y" car en java tu peux ne pas déclarer le nombre de colonne sachant qu'il peut étre différent a chaque ligne et donc chaque ligne pointera vers un vecteur.
byte[][] data = new byte[3][];
byte []tab={1,2,3,4,5,6};
// Code les données
for(int i=0;i<3;i++)
data[i]=tab;
for (int i=0; i < data.length; i++) {
for (int j=0; j < data[i].length; j++) {
System.out.print(data[i][j] + " ");
}
System.out.println();
}
System.out.println();
// Simule des erreurs de transmission
data[1][2] = 10;
c'est lorsque j'affecte "10" au data[1][2] il me l'affecte aussi au data[0][2 ]et au data[2][2] et je comprend pas pourquoi? -
Salut,
Bon, puisque tu persistes à vouloir utiliser une matrice mal "dimensionnée", je vais te conseiller d'oublier cette méthode et de voir ce que tu peux faire avec java.util.ArrayList .
https://docs.oracle.com/javase/7/docs/api/ classe ArrayList
Cordialement,
Dan