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 :

Triage complexe Arraylist


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut Triage complexe Arraylist
    Bonjour,

    Je suis entrain de travailler sur le tri d'une Arraylist. Je vais essayer de vous expliquer la situation du mieux que je puisse.

    Donc j'ai une Arraylist que l'on va appellée A. A contient un ensemble d'Arraylists qu'on apellera B. Dans les Arraylists B, il y a des objets C.
    les objets C contiennent un id qui va me permettre de récupérer un objet D.
    Il faut que je récupère une valeur depuis l'objet D (cette valeur est identique pour tous les objets C contenus dans la même Arraylist B).

    Mon but est de trier A en fonction de la valeur obtenue via D.

    C'est chaotique, mais je n'ai pas d'autres choix.

    Merci d'avance pour votre aide

  2. #2
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Par défaut
    Si j'ai bien compris, il n'y a pas de solution unique car il n'y a pas un unique tri possible pour les éléments B.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    tu peut faire ça avec Comparable

    et Collections.sort( , )

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    Tu peut faire un Comparator<A>

    dans compare(A a1, A a2):
    pour a1:
    tu itère sur tous les B et prend la valeur de l'objet D pointé par le premier C
    tu ne garde que le maximum (par exemple) de ces valeurs.
    pour a2 pareil, et tu compare la valeur pour avoir ta valeur de retour.

    On peut trè bien mettre d'autre politiques que un max, comme par exemple un min, une moyenne, une médiane...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut
    Merci pour vos réponses, j'ai essayé d'implémenter Comparable et de surcharger le compareTo, mais j'ai finalement opté pour une autre solution.

    Une solution assez moche, je l'avoue, mais qui fonctionne.
    C'est la suivante :

    J'ai fait une itération sur l'ensemble des Arraylists B pour récupérer le premier C et ensuite le D.
    Les valeurs contenues par D peuvent être "", "901" ou "902"
    J'ai donc utilisé un int qui s'incrémentait a chaque passage et je définissais la clée de ma map à "valeur de D + int" de manière à ce que mon tri se fasse de manière naturelle dans la TreeMap.
    Une fois ma map triée, création d'une nouvelle Arraylist(size=Arraylist A.size())
    Ensuite, il suffit d'itérer sur la map et de rajouter un par un les objets dans la nouvelle Arraylist pour finalement obtenir une Arraylist triée.

    Merci pour vos réponses et vive le bricolage!

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

Discussions similaires

  1. [ STRUTS ][ JSP ][ ArrayList] un lien pour trier
    Par LoulouFifi dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/02/2004, 17h24
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  4. Réponses: 5
    Dernier message: 04/08/2003, 21h50
  5. Réponses: 7
    Dernier message: 07/04/2003, 09h35

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