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

Collection et Stream Java Discussion :

Différence List, ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Différence List, ArrayList
    Bonjour,

    J'ai un petit programme qui comporte plein d'éléments, il faux les lister et voir si une liste contient cet élément ou pas avant de l'ajouter, il faut les parcourir une bonne centaine de milliers de fois quoi ... bref... dans je voulais savoir quel serait le meilleurs class pour un traitement aussi long, List ou ArrayList .... je ne connais pas d'autres... il n y pas de tri dans mon code, je n'en ai pas besoin, ce sont des liste d'une taille assez impressionente, je cherche à optimiser le temps d'exécution ... qui comparé au même programme mais en C++ est 15 fois plus long (je dis le même je veux dire un prog qui fait la même chose).


    Merci

    cdt

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,
    Il faut que tu regarde un peu l'API java et tu verra que List est une interface et pas une classe.

    Pour ce qui est de la performance l'arrayList est pas mal si tu fait un accès par index, sinon si tu parcours ta liste de façon séquentiel la LinkedList est bien meilleur.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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 Alkhan Voir le message

    Pour ce qui est de la performance l'arrayList est pas mal si tu fait un accès par index
    Tu veux dire le num de l'élément .... getElementAt(index) .... c'est ça ?

  4. #4
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Perso dans ce cas la j'utiliserais une Map.

    Pour savoir si un élement est présent c'est quand même le plus rapide non ?

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    Bonjour,

    Pour une insertion et une recherche rapide, il faut utiliser une collection basée sur une table de hachage (HashMap, HashSet, ...) et implémenter correctement les méthodes equals() et hashCode() des classes dont sont instanciés tes éléments (et celles de tes clés dans le cas d'une HashMap).

    Après ça dépend du contexte. Une HashMap est pratique si les éléments ont pas mal de champs dont seulement une minorité servent à les identifier (on regroupe alors ces champs en clés).

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    oui mhamedbj c'est bien getElementAt(index) ou aussi get(index)
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    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 Bezout Voir le message
    Perso dans ce cas la j'utiliserais une Map.

    Pour savoir si un élement est présent c'est quand même le plus rapide non ?
    une Map .... c'est une class Map ?

  8. #8
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Si tu n'a pas besoin d'index, j'utiliserai un Set(interface) et une HashSet au niveau de l'implementation. Va voir le tutoriel sur les collections, ca t'aidera surement a faire ton choix.

Discussions similaires

  1. Différence entre ArrayList et Vector
    Par L'aigle de Carthage dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 22/11/2014, 10h33
  2. [Liste] Différence entre LinkedList et ArrayList ?
    Par wafiwafi dans le forum Collection et Stream
    Réponses: 25
    Dernier message: 30/01/2011, 14h16
  3. Différences entre ArrayList et Vector
    Par lionrouge dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 29/05/2006, 20h12
  4. Quel type de liste choisir ? (Vector, ArrayList, ...)
    Par dinver dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 19/01/2006, 12h09

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