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

avec Java Discussion :

Tables de hachage et les arbres classés


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 14
    Points
    14
    Par défaut Tables de hachage et les arbres classés
    Salut a tous,
    J'ai une classe qui génère des mots aléatoires. Appelons-la "WordStore". Et je veux créer une autre classe qui exige que les objets de type WordStore ont des méthodes additionner et compter. Les deux prennent un String comme argument, la premiere ajoute à la collection d'objet WordStore un autre string, la seconde retournant un entier qui désigne combien de fois l'argument String est stockée dans la collection. Je dois aussi implémente une autre méthode qui prend toujours un string comme argument et supprime une occurrence de celui-ci une seule fois dans la collection si il y a occurrence, si non retourne la collection inchangée.

    Tout ce travail je l'ai fait en utilisant des tableaux. Toutefois, pour plus d'efficacité j’ai envie d’utiliser des techniques telles que les tables de hachage et les arbres classés. Le problème si que je n'ai jamais travaillé avec ce genre de techniques. C'est pour cette raison que je suis entrain d'écrire tout ce roman en espérant que quelqu'un va me donner un indice comment utiliser ces techniques.
    Merci a tous,
    Cool Raoul
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    public class WordStoreImp implements WordStore
    {  
        private int x;
        private String array2[];
     
        public WordStoreImp(int x)
        {
            this.x = x;
            String array[] = new String[x];
            array2=array;
            for(int i=0; i<array2.length; i++)
            {
                array2[i]="default";
            }
        }
        public void add(String word){   
            for(int i=0; i<array2.length; i++)
            {
             if(array2[i].equals("default"))
             {
                 array2[i]=word;
                 break;
              }
            }
        }
        public int count(String word){
            int count = 0;
            for(int i =0; i< array2.length; i++)
                {
                    if(array2[i].equals(word))
                    {
                       count++;
                    }
                }
                return count;
        }
        public void remove(String word){
            int index = 0;
            for(int i=0; i< array2.length; i++)
            {
                if(array2[i].equals(word))
                {
                    index = i;
                    break;
                }
            }      
           String newArray [] = new String[array2.length-1];  
           int k = 0;
            for(int j=0; j<array2.length; j++){
                if(array2[j] != array2[index])
                {
                    newArray[k] += array2[j];
                    k++;
                }
            }
        }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu veux utiliser les tables de hachages et les arbres classés en même temps ?
    D'après ce que j'ai compris de ton problème, tu dois choisir entre les deux. Inutile de mixer les deux techniques.
    Sinon, tu veux de l'aide sur quoi ? Tu cherches à comprendre comment fonctionne la table de hachage et l'arbre classé ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    L’un ou l’autre ou le meilleur des deux pour ce cas.
    Oui je veux savoir comment ca marche et comment les appliques pour ce problème.
    Merci,

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Salut,
    Est ce que quelqu'un a une idée comment améliorer la dernière méthode
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public void remove(String word){
            int index = 0;
            for(int i=0; i< array2.length; i++)
            {
                if(array2[i].equals(word))
                {
                    index = i;
                    break;
                }
            }      
           String newArray [] = new String[array2.length-1];  
           int k = 0;
            for(int j=0; j<array2.length; j++){
                if(array2[j] != array2[index])
                {
                    newArray[k] += array2[j];
                    k++;
                }
            }
        }

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Pour l'amélioration de la méthode (et surtout pour t'éviter de la peine ) tu devrais utiliser System.arraycopy avec "les paramètre qui vont bien"
    Crée un tableau de taille n-1 et utilise 2 fois System.arraycopy pour ne garder que les parties de ton tableau avant et après l'index que tu as déterminé auparavant.

    Sinon, pour ton problème plus global, peut être peux-tu regarder Common-Collection d'apache et notamment Bag
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Merci Fifan31 pour m’avoir évite une grosse peine. Finalement je n’ai pas utilise Sysem.arrycopy, mais j’ai trouve pas mal d’info sur le site. Merci
    Cool Raoul

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher les données d'une table sous forme d'une arbre
    Par combe_6 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 30/07/2014, 12h55
  2. Les tables de hachage
    Par jipe47 dans le forum Langage
    Réponses: 1
    Dernier message: 17/08/2011, 20h48
  3. Réponses: 1
    Dernier message: 25/03/2011, 16h30

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