Java.lang.NullPointerException
Fermé
karine
-
11 mai 2005 à 15:56
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 11 mai 2005 à 17:15
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 11 mai 2005 à 17:15
13 réponses
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
11 mai 2005 à 15:59
11 mai 2005 à 15:59
Salut
Es tu sûre que tab n'est pas null?
Es tu sûre que tab n'est pas null?
Oui, tab n'est pas nul.
D'après les traces, il passe plusieurs fois dans la boucle.
Est-ce que tu vois d'où ça pourrait venir ?
D'après les traces, il passe plusieurs fois dans la boucle.
Est-ce que tu vois d'où ça pourrait venir ?
Utilisateur anonyme
11 mai 2005 à 16:06
11 mai 2005 à 16:06
Admettons qu'il y ai 4 parametres! Tab.lenght va te renvoyé 5! donc il me semble que lors de la declaration du tableau frequences, ce tableau contiendra 5 cases! Jme trompe peut etre mais ca me parrais bizar!
J'ai fait quelques tests, et je m'aperçois du probleme.
Le tableau tab a une taille autour de 4000.
Donc le tableau frequences a une taille de 4000.
Mais le tableau frequence n'est rempli que jusqu'à l'indice 222.
Et apres il est plein de null.
J'ai deux questions :
1. comment initialiser un tableau sans connaitre sa taille a l'avance ?
2. pourquoi l'erreur intervient a la ligne dico.put(tab[i], new Integer(i)); qui n'a aucun rapport avec frequences ?
Tout ça n'a aucun sens pour moi !!!
Merci pour votre aide
Le tableau tab a une taille autour de 4000.
Donc le tableau frequences a une taille de 4000.
Mais le tableau frequence n'est rempli que jusqu'à l'indice 222.
Et apres il est plein de null.
J'ai deux questions :
1. comment initialiser un tableau sans connaitre sa taille a l'avance ?
2. pourquoi l'erreur intervient a la ligne dico.put(tab[i], new Integer(i)); qui n'a aucun rapport avec frequences ?
Tout ça n'a aucun sens pour moi !!!
Merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
11 mai 2005 à 16:23
11 mai 2005 à 16:23
ya un truc que g appris en java c que les erreurs ne sont jamais la ou on les atends! Essaye de changer new int[tab.length] par new int [tab.length-1]
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
11 mai 2005 à 16:26
11 mai 2005 à 16:26
Au lieu d'utiliser des tableau moi dans ces cas là j'utilise plutot des Vector, au moins pas besoin d'initialiser la taille, c'est automatique. C'est ce que je te conseil car toute les donnée de tes tableau sont de même type, donc si plus loins tu veux utiliser une données des vector ainsi cré, tu n'aura qu'à caster en (int) la sortie quand tu fera un :
int num = (int) tab.getElelementAt(i);
par exemple.
Moi je dit ca pour contourner ton probleme, et si j'amais tu as de nouveau l'erreur alors ca ne vient pas de la !
++
int num = (int) tab.getElelementAt(i);
par exemple.
Moi je dit ca pour contourner ton probleme, et si j'amais tu as de nouveau l'erreur alors ca ne vient pas de la !
++
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
11 mai 2005 à 16:54
11 mai 2005 à 16:54
int[] frequences = new int[tab.length];
tab est un tableau de chaine, cela ne renverra pas le nombre d'élément mais la taille total (et vu que frequence c'est des int (plus petit), c'est peu etre pour ca que seulement le début est remplie.
C'est une supposition...
Essaye voir de faire la meme chose mais avec le nb d'éléments.
Utilisateur anonyme
11 mai 2005 à 16:56
11 mai 2005 à 16:56
Jpense pas! new int[tab.length] renvoie normalement le nb d'éléments
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
11 mai 2005 à 17:02
11 mai 2005 à 17:02
ok
Utilisateur anonyme
11 mai 2005 à 17:06
11 mai 2005 à 17:06
et tu sur que tab[i] correspond au bon type de donnée pour la commande put?
Merci à tous,
j'ai trouvé une bidouille, je fais un test if(tab[i]!= null) avant de faire quoi que ce soit.
Mais pour la prochaine fois, j'essaierai peut etre avec Vector.
A+
j'ai trouvé une bidouille, je fais un test if(tab[i]!= null) avant de faire quoi que ce soit.
Mais pour la prochaine fois, j'essaierai peut etre avec Vector.
A+
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
11 mai 2005 à 17:15
11 mai 2005 à 17:15
Ce qui est dommage c'est que tu utilises un tableau beaucoup trop grand dans l'affaire.