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 :

Tri d'un arrayList d'Object[]


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 54
    Points
    54
    Par défaut Tri d'un arrayList d'Object[]
    Bonjour,

    Je vous explique ma problématique.

    En faites, j'essaye de trier une ArrayList composée d'Object[].

    Ces Object[] sont créés à partir de résultats de 2 requêtes en BDD dans 2 tables différentes. Ces 2 tables ont la même structure et comportent entre autre 1 champ Date.

    J'effectue donc mes 2 requêtes l'une après l'autre et j'ajoute d'abord les résultats de la première requete dans l'arraylist, et ensuite les résultats de la 2eme requete dans l'arrayList, a chaque fois sous forme d'Object[].

    Je souhaiterai ensuite effectuer un tri sur cette ArrayList sur le critère du champ Date.

    Comment effectuer ce tri facilement?

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, tout d'abord, tu ne devrais pas manipuler des Object[] dans ton ArrayList mais des objets d'une classe que tu devrais créer.

    Par exemple si dans ta base tu as des commandes de produits, tu dois créer une classe Commande et y mettre tous les attributs nécessaires.
    A la lecture de ton ResultSet, tu dois instancier ces Commandes et les mettre dans l'ArrayList.

    Dans cette classe Commande, tu peux redéfinir la méthode equals (FAQ : Pourquoi et comment redéfinir la méthode equals() ?), dans laquelle tu fais une comparaison sur la date.

    Ainsi tu auras simplement à utiliser la méthode Collections.sort(List<T> list) qui s'appuie sur equals pour comparer les éléments de la liste.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 81
    Points : 84
    Points
    84
    Par défaut
    2 possibilités :

    • Il faut que tes objets implémentent l'interface comparable (méthode compareTo).
      A toi de faire le nécessaire dans le code de cette méthode (cast dans le bon type, récupération de la valeur à comparer et renvoyer -1,0 ou 1 suivant que le paramètre est plus petit, plus grand que l'objet sur lequel est appliqué cette méthode).
      Dans ce cas, le simple appel de la méthode sort sur ton ArrayList suffira.

    • Il faut créer une classe qui implémente l'interface comparator (méthode compare).
      A toi de faire le nécessaire dans la code de la méthode compare.
      Dans ce cas, il faut appeler la méthode sort avec 2 paramètres : ton ArrayList et ta classe qui implémente l'interface comparator.


    Bon courage

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

Discussions similaires

  1. tri d'un ArrayList
    Par sos dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 19/03/2010, 05h40
  2. Tri ArrayList d'object
    Par aristeas dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 21/11/2008, 17h17
  3. tri d'ArrayList d'Object[] sur un champ String
    Par igorzup dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 01/10/2008, 17h49
  4. Tri d'une ArrayList de tableaux
    Par Alqualonde dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/12/2006, 15h22
  5. tri d'une arraylist d'interface
    Par dude666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/11/2006, 16h37

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