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 :

[Débutant] Problème d'efficacité


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Par défaut [Débutant] Problème d'efficacité
    Voila, bonjour à tous !

    Je dois implémenter un programme qui se doit de gérer toute une série d'éléments.

    La structure de donnée que je dois utiliser doit être dynamique car je ne connais pas le nombre d'éléments que j'aurai à gérer à l'avance.

    De plus, je dois pouvoir insérer, retirer, et chercher/trouver (pour le restituer) un élément très rapidement... La question que je me posais c'est, quelle structure de données utiliser pour que mon implémentation soit très efficace?

    Je pensais à une table de hachage... Qu'en pensez-vous?

    Merci pour vos réponses

  2. #2
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    Citation Envoyé par nanath02
    La structure de donnée que je dois utiliser doit être dynamique car je ne connais pas le nombre d'éléments que j'aurai à gérer à l'avance.

    De plus, je dois pouvoir insérer, retirer, et chercher/trouver (pour le restituer) un élément très rapidement... La question que je me posais c'est, quelle structure de données utiliser pour que mon implémentation soit très efficace?

    Je pensais à une table de hachage... Qu'en pensez-vous?

    que dirais-tu si tu allais voir du côter des "List", "ArrayList"....
    essaye pour voir

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Par défaut
    J'y ai pensé mais j'aimerais accéder directement à un élément sans me soucier de position ou d'indices...

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par nanath02
    J'y ai pensé mais j'aimerais accéder directement à un élément sans me soucier de position ou d'indices...
    HashSet devrait faire l'affaire. Il faut bien sûr que tu implémentes correctement les méthodes equals() et hashCode()...

    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Par défaut
    merci!

  6. #6
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut ah bon!
    je ne trouve pas de difference entre le hashSet et le ArrayList (il ont un peut pres les mêmes methodes !!!)

    tu pourrais m'eclairer STP ???

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Déjà il y a les différences entre une List et un Set :

    • Une List représente un ensemble d'élément ordonné.
    • Un Set représente un ensemble d'élément unique (pas de doublons).


    Ensuite il y a les spécificité d'implémentation :
    • ArrayList utilise un tableau en interne, ce qui permet un accès très rapide lorsqu'on utilise un index.
    • HashSet utilise une table de hachage, ce qui permet de retrouver un objet très rapidement par comparaison (via hashCode() et equals())


    a++

  8. #8
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    merci d'avoir pris la peine mais...

    Citation Envoyé par adiGuba
    [*]ArrayList utilise un tableau en interne, ce qui permet un accès très rapide lorsqu'on utilise un index.[*]HashSet utilise une table de hachage, ce qui permet de retrouver un objet très rapidement par comparaison (via hashCode() et equals())[/list]

    a++
    (c'est vrai que je comprend vite mais il faut m'expliqué longtemps !!

    ArrayList possede les methodes hashCode() et equals() !!!!
    1)ne sont - ils pas utilisablent ???

    2)et si jamais je veux redefinir ces deux methodes pour hashset() je doit faire une classe extends hashSet ???

    merci pour ta patience

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Les méthodes hashCode() et equals() doivent être implémentées pour les objets que tu stockes dans ta collection, et non pas pour la collection elle-m$eme...

    • equals() est utilisé pour retrouver un élément, comme par exemple avec la méthode contains().
    • hashCode() est utilisé par les tables de hachage (comme HashSet ou HashMap) afin de retrouver plus rapidement les éléments (principe des table de hachage).



    a++

  10. #10
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut ahhhhhhhhh
    dacord là c'est mieux !!

    merci infiniment

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut
    ArrayList c'est plus vite pour rechercher
    Mais LinkedList plus vite de modifier et supprimer

  12. #12
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ou pas.
    La LinkedList est uniquement plus rapide à l'ajout simple (c'est à dire en fin de liste)

    Par contre en recherche, insertion, modification ou suppression c'est plus lent qu'une ArrayList.

    Enfin bon si tu cherches une liste relativement équilibrée sur les différentes opérations je te conseillerais la TreeList issue de jakarta commons collections

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

Discussions similaires

  1. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 18h41
  2. Réponses: 2
    Dernier message: 28/04/2004, 12h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 14h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 16h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 15h20

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