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 :

parcours Liste rapide


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut parcours Liste rapide
    Bonjour,

    voici le contexte tout d'abord, j'ai deux liste de chaine de caractere, le but est de fair eune exclusion de ces 2 listes, cad recupérer les chaines n'étant pas dans les 2 listes.
    Contrainte : il faut que c esoit hyper rapide ...

    Ma solution (assez lente) , je mets dans 2 arrayList, je parcours la premiere, pour chacun je parcours la deuxieme et si je trouve je supprime l'enreg. de ma premiere et deuxieme liste.

    Ma question : est ce que vous auriez pas une autre solution car ca mets trop de temps ?

    pour 1800 enreg. dans chaque lsites, ca mets à peu pres 5 min ....

    merci d'avance,

  2. #2
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,
    jettes un coup d'oeil du coup de la classe CollectionUtils du projet common-collections d'apache.
    La fonction disjunction(Collection c1, Collection c2) fait exactement ce que tu veux et sans doute de manière très performante.
    Il ne sert à rien de vouloir réinventer la roue.

    Banzai

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je rajoute: les arraylist, c'est loin d'être performant quand il s'agit de supprimer des éléments.

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    merci heimdal pour l'info, je connaissais pas !!
    mais je vais pas pouvoir l'utiliser, ca me renvoie une liste alors que je souhaite connaitre quel chaine provient de quel liste, la première ou la deuxieme ... je sais, je suis chiant !!

    et en effet, j'ai bien vu que les arrayList, pas tres performant dès qu'on lui demande de supprimer ....

    si vous avez une autre idée, ou conseil, je vais test avec des Lists au lieu de arrayList, mais je sais pas si ca sera frnachement mieux .....

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Collection temp = CollectionUtils.intersection(a,b);
    a.removeAll(temp);
    b.removeAll(temp);
    et tu aura ce que tu veux.

    Utilise des Set plutot que des List, et choisi un Set simple à manipuler, comme le HastSet.

  6. #6
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Pas mieux à dire +1 pour le HashSet

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

Discussions similaires

  1. Problème parcours liste Array ?
    Par Baboulinet_ dans le forum Général Java
    Réponses: 9
    Dernier message: 05/10/2011, 09h23
  2. [liste] Problème de tri rapide
    Par sorry60 dans le forum C
    Réponses: 12
    Dernier message: 03/05/2006, 12h16
  3. Réponses: 2
    Dernier message: 07/02/2006, 14h35
  4. Parcours très rapide d'une arborescence ?
    Par Invité dans le forum C++Builder
    Réponses: 7
    Dernier message: 06/05/2005, 09h24

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