Probléme avec les tableaux en java

rwikus Messages postés 994 Statut Membre -  
 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.
Configuration: Windows 7 / Firefox 3.6

3 réponses

  1. danimo
     
    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
    0
  2. rwikus Messages postés 994 Statut Membre 56
     
    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?
    0
  3. danimo
     
    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
    0