IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Probleme de modif d'un element d'un vecteur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut Probleme de modif d'un element d'un vecteur
    Je doit travailler sur deux vecteurs de tailles égales:vMot qui contient des String et nbOcu qui contient le nombre d'occurence du mot dans un texte.
    Au depart j'ai mon vecteur avec tous les mots.
    Je parcours donc mon vecteur de mot et pour chaque mot je parcours la suite du vecteur pour verifier si l'on trouve ce mot a nouveau.
    Si ce mot existe dans la suite du vecteur, j'enleve la seconde occurence ainsi que son nombre d'occurence.
    Le problème a lieu au moment de modifier le nombre d'occurence du mot. Le programmme fini net sans excpetion ni rien, et netbeans me marque build succesfull.
    Je ne comprend pas pourquoi.
    Si vous pouviez m'aider, j'accepterai votre aide avec grand plaisir.
    Merci beaucoup.

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     for(int i=0;i<vMot.size();i++){
                            Mot=(String)vMot.elementAt(i);                   
                            for(int j=i+1;j<vMot.size();j++){
                                Mot2=(String)vMot.elementAt(j);
                                if(Mot.equals(Mot2)){
                                    System.out.println(Mot+" "+i+"  "+nbOcu.elementAt(i)+"  "+Mot2+"   "+j+"  "+nbOcu.elementAt(j));
                                    vMot.removeElementAt(j);                            
                                    nbOcu.removeElementAt(j);
                                    /***Ligne du probleme***/
                                    nbOcu.setElementAt((Integer)nbOcu.elementAt(i)+1,i);
                                   j--;
                                                              }
                            }
    }

  2. #2
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    Lorsque tu retires un élément à la jième place le j+1ème élément devient le jième. Donc le prochain élément à tester n'est pas le j+1ème mais le jième.
    Donc il faut que tu ai une disjonction de cas selon que tu retire un élément ( j:=j; ) ou pas ( j++; ).
    Sinon, ta comptabilisation d'occurences peut se faire au fil de l'eau sans init préalable et sans retirer les éléments en doublons.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Bien vu.
    Ca résoud pas mon problème, mais merci pour le tuyau.

  4. #4
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    Si tu utilises NB utilise donc le debugger tu verras où tu passes et les valeurs de tes variables.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    En fait j'utilise pas Nb. j'avais juste oublié de l'enlever du code.
    En fait il me sort unejava.lang.ClassCastExcpetion sur cette ligne.
    j'en déduit donc qu'il n'arrive pas a caster l'element de nbDocu.
    Aprés recherche , il s'avère que je rentre des strings (qui représente des nombres)dans mon vecteur nbOcu.
    Mais je vois toujours pas pourquoi il n'arrive pas a le caster.
    j'ai éssayé de remplacé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer.nbOcu.elementAt(i)+1
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer.parseInt((String)nbOcu.elementAt(i))+1
    mais le résultat reste toujours le même.
    Quelqu'un à une idée?

  6. #6
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    utilise un tableau d'entier tout bête pour nbOcu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Int [] nbOcu;
    nbOcu=new Int[vMot.size()];
    for(int index=0;index<nbOcu.length;index++) {nbOcu[index]:=1};
    Comme ça après tu n'as compteur a incrémenter.

Discussions similaires

  1. Probleme de modification du nom d'un attribut
    Par kenny49 dans le forum Access
    Réponses: 4
    Dernier message: 23/06/2006, 14h23
  2. Réponses: 1
    Dernier message: 12/04/2006, 13h52
  3. Probleme d'affichage d'un element d'un tableau
    Par l_seringa dans le forum C
    Réponses: 17
    Dernier message: 05/04/2006, 15h12
  4. Probleme de modification de couleur de JFrame
    Par canigu dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 21/12/2005, 01h51
  5. Réponses: 3
    Dernier message: 01/09/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo