Flux rss
Rechercher : dans
Par :

Java.lang.NullPointerException

karine, le mercredi 11 mai 2005 à 15:56:39 
 Signaler ce message aux modérateurs

Bonjour,

j'ai cette erreur mais je ne vois vraiment pas pourquoi ...

Voici le code :

public static void compter_occurences(String[] tab){
 // Table des mots du dictionnaire
 Hashtable dico = new Hashtable();
 
 // Frequences de leur apparition
 int[] frequences = new int[tab.length];
 
 	for (int i=0; i<tab.length; i++) {
	// Recuperation de tous les mots dans la table de hash
		dico.put(tab[i], new Integer(i));
		System.out.println("dico ok");
	// Mise a zero de leur frequence dans le document
		frequences[i] = 0;
		}
}


l'erreur vient d'apres les traces à la ligne dico.put(tab[i], new Integer(i));

Est-ce quelqu'un pourrait m'éclairer ?

Merci !!

1

teebo, le mercredi 11 mai 2005 à 15:59:29

Salut
Es tu sûre que tab n'est pas null? It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

2

karine, le mercredi 11 mai 2005 à 16:01:40

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 ?

Répondre à karine

3

coucou_c_julien, le mercredi 11 mai 2005 à 16:06:46

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! La vie est belle!

Répondre à coucou_c_julien

4

karine, le mercredi 11 mai 2005 à 16:19:36

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

Répondre à karine

5

coucou_c_julien, le mercredi 11 mai 2005 à 16:23:24

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] La vie est belle!

Répondre à coucou_c_julien

6

kij_82, le mercredi 11 mai 2005 à 16:26:33

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 !

++ ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

7

karine, le mercredi 11 mai 2005 à 16:27:10

J'ai essayé, et toujours pareil ...

Merci quand meme !

Répondre à karine

8

kij_82, le mercredi 11 mai 2005 à 16:54:05

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. ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

9

coucou_c_julien, le mercredi 11 mai 2005 à 16:56:03

Jpense pas! new int[tab.length] renvoie normalement le nb d'éléments La vie est belle!

Répondre à coucou_c_julien

10

kij_82, le mercredi 11 mai 2005 à 17:02:39

Ok ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

11

coucou_c_julien, le mercredi 11 mai 2005 à 17:06:51

Et tu sur que tab[i] correspond au bon type de donnée pour la commande put? La vie est belle!

Répondre à coucou_c_julien

12

karine, le mercredi 11 mai 2005 à 17:12:51

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+

Répondre à karine

13

 teebo, le mercredi 11 mai 2005 à 17:15:56

Ce qui est dommage c'est que tu utilises un tableau beaucoup trop grand dans l'affaire.
It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo
[Java]java.lang.NullPointerException Bonjour,j'ai problme sur cette erreur toujours, qelqn peut me sauver, svp, merci d'avance java.lang.NullPointerException at extranet.alert.Daemon.processNe(Daemon.java:310) at extranet.alert.Daemon.processSite(Daemon.java:253) at... www.commentcamarche.net/forum/affich-2525616-java-java-lang-nullpointerexception
Java.lang.NullPointerException Bonjour,jai un probleme de java.lang.NullPointerException dans mon programme java. Quand j'entre les informations dans mon interface graphique et je compille ,la console me donne deux erreurs java.lang.NullPointerException. Merci d' avance, votre aide... www.commentcamarche.net/forum/affich-6869733-java-lang-nullpointerexception
Java.lang.noclassdeffounderror Bonjour, J'ai un problème à chaque fois que j'execute un programme Java en ligne de commandes : j'obtiens Java.lang.noclassdeffounderror ... Qelqu'un a-t-il une solution, merci d'avance Véronique www.commentcamarche.net/forum/affich-50409-java-lang-noclassdeffounderror
[Programmation] Comment débuter, quel langage?Comment débuter, quel langage? Introduction Ceux que l'on peut utiliser Delphi/Pascal Java Python .Net Smalltalk Ceux que l'on peut utiliser à la rigueur C/C++ PHP Ada Lisp/Caml/... Ceux que l'on peut ne pas utiliser www.commentcamarche.net/faq/sujet-457-programmation-comment-debuter-quel-langage
[mythe] JavaScript c'est la même chose que Javamythe Javascript est le même langage que Java Réalité FAUX Explications Ces deux langages existent bien, et ce sont tous les deux des langages de programmation (moins poussée pour le JavaScript), mais ce ne sont pas les mêmes... www.commentcamarche.net/faq/sujet-4614-mythe-javascript-c-est-la-meme-chose-que-java
[SQL] java.lang.NullPointerExceptionBonjour tout le monde ! J'ai cette erreur qui s'affiche quand je fais une requete pour inserer des trucs dans ma base de données. Est-ce que qyelqu'un sait d'où ça peut provenir ? Merci beaucoup www.commentcamarche.net/forum/affich-1468817-sql-java-lang-nullpointerexception
Visual Editor sur eclipseBonjour, J'utilise VEP pour faire des interfaces graphiques Java sur eclipse. J'obtiens un message d'erreur quand je crée une fenêtre: "Visual Editor for java error Error trying to set new file into editor Reason: java.lang.NullPointerException" J'ai... www.commentcamarche.net/forum/affich-711754-visual-editor-sur-eclipse
Java.lang.NoClassDefFoundError: org/apache/coSalut. J'ai un probleme avec les Servlet de WebServices deployes sur Tomcat. 10:39:50,857 ERROR [Service]:250 - "Servlet.service()" pour la servlet Service a généré une exception java.lang.NoClassDefFoundError:... www.commentcamarche.net/forum/affich-3329545-java-lang-noclassdeffounderror-org-apache-co
Télécharger Pocket Programming LanguagePocket Programming Language (PPL) est un programme puissant permettant de concevoir des jeux, des démos et des apllications pour Windows et autres plate-formes mobiles. Au lieu de prendre des mois pour développer des jeux puissants, Pocket Programming... www.commentcamarche.net/telecharger/telecharger-34059806-pocket-programming-language
Java - Caractéristiques du langageFichier source, compilation et machine virtuelle Le fichier source d'un programme écrit en Java est un simple fichier texte dont l'extension est par convention .java. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un... www.commentcamarche.net/contents/java/javacarac.php3
Java - Premier programmePremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main... www.commentcamarche.net/contents/java/javaprem.php3
JavaHistoire de Java Java est un langage objet ressemblant au langage C++. Il a été mis au point en 1991 par la firme Sun Microsystems. Le but de Java à l'époque était de constituer un langage de programmation pouvant être intégré dans les appareils... www.commentcamarche.net/contents/java/javaintro.php3