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]Probleme de performance


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 79
    Par défaut [débutant]Probleme de performance
    Bonjour.

    Je suis en train d'ecrire un hitCollector (api lucene) et j'ai besoin de mettre les éléments trouvés dans un ensemble.
    Chaque élément sera unique (inutile de vérifier l'unicité), constitué d'une simple String et je parcourerais cet ensemble séquentiellement (pas de recherche et on passera sur chaque élément).
    Pas besoin de tri non plus.

    En fait il faut simplement que l'ajout d'un élément et la parcours de l'ensemble des éléments soit le plus rapide possible.
    En consultant la FAQ apparement HashSet à l'air d'etre le meilleur choix.

    Mais est ce qu'il y a "encore" mieux ?
    Par exemple définir une Collection ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Puisque tu veux pas trier tes éléments,

    alors une List ou ArrayList me parait la meilleure solution.



  3. #3
    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 : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    LinkedList me parait bien : insertion à la fin en temps constant, pas de redimensionnement d'un tableau en interne. Pour le parcours, utiliser l'Iterator.
    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.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Par défaut
    Pour le parcours séquentiel, il vaut mieux utiliser une LinkedList qu'une ArrayList qui est elle plus efficace pour récupérer un objet à un index précis.

    Par contre, j'avoue que je ne sais pas ce qui est mieux entre une hashSet et une LinkedList... Dans tous les cas, le gain est vraiment mineur et tu ne verras pas la différence dans ton programme, quel que soit l'implémentation de "Collections" choisi.

  5. #5
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par Angelus21 Voir le message
    Pour le parcours séquentiel, il vaut mieux utiliser une LinkedList qu'une ArrayList
    J'en doute fortement...
    Dans une ArrayList, tu connais facilement l'adresse de l'élément suivant: c'est une addition.
    Dans une LinkedList, pour trouver l'adresse de l'élément suivant, il faut d'abord suivre l'adresse du noeud suivant.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 79
    Par défaut
    Merci pour toutes vos réponses je vais tacher de tester ca dans la journée

  7. #7
    Invité
    Invité(e)
    Par défaut
    Pour ma part je dirais que la différence entre LinkedList et ArrayList est la suivante :

    - LinkedList (liste chaînée) : écriture(ajout/suppression) "au milieu" de la liste plus rapide. Lecture lente.
    - ArrayList (tableau à taille dynamique) : écriture(ajout/suppression) plus lente (sauf en fin de liste où c'est rapide). Lecture rapide.

    Si l'ordre des éléments dans ton tableau n'a aucune importance tu peux même utiliser une collection du type Set.

Discussions similaires

  1. [débutant] Probleme avec switch et héritage
    Par durk dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2005, 09h48
  2. [C#][débutant] Probleme avec un case
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2005, 12h45
  3. [débutante]Probleme de liens image dans JSP/Servlet
    Par celine31 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/11/2004, 15h51
  4. Réponses: 14
    Dernier message: 09/08/2004, 13h42
  5. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39

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