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 :

Liste d'objet/index triés


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut Liste d'objet/index triés
    Bonjour à tous,

    Je récupère des objets qui contiennent notamment un attribut de temps.
    Mon objectif est d'ajouter tous ces objets dans une structure de donnée me permettant de trier ces objets chronologiquement et me permettant de les parcourir de manière linéaire.
    Mon idée est donc d'utiliser une structure de donnée me permettant de stocker un couple (objet.getTime;objet) afin de pouvoir trier mes objets chronologiquement et d'accéder à mes objets par la suite.

    Je voulais pour cela utiliser treeSet. Malheureusement, il semblerait que je ne puisse stocker de couples comme ca ...

    C'est pour ca que je me tourne vers vous ...
    Ma premiere question est : comprenez vous ma problématique ?
    Ma deuxième question est : est ce que je vais dans le bon sens ?
    Ma troisième question est : le treeset est il le bon outil ?
    Ma quatrième question est : si non, qu'est ce que je dois utiliser ?

    Merci d'avance pour vos réponse !!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 194
    Par défaut
    Je pense que tu ne spécifie pas correctement les types paramétrés de TreeSet. Si le paramètre de temps est un long, tu es obligé d'utiliser un enveloppeur java.lang.Long.

    Par ailleurs, je ne me suis jamais penché sur l'algorithme de tri utilisé par TreeSet, mais si la performance est une question primordiale pour toi, tu pourrais avoir intérêt à redéfinir les méthodes d'accès. Tu devras alors décider si tu préfère sacrifier la lecture ou l'écriture des données, c'est-à-dire si le tri doit se faire lors de l'ajout ou lors de l'accès aux données.

    Pour savoir si tu vas dans le bon sens, tu auras donc compris que cela dépend surtout des contraintes de ton application.

    TreeSet est une solution simple et satisfaisante pour un volume raisonnable (quelques milliers d'entrées) mais qui peut montrer des faiblesses pour un volume de données très important en raison de l'obligation d'utiliser des enveloppeurs, c'est-à-dire des objets, comme clé d'accès.

    Pour un très gros volume, une base de données sera toujours préférable, en particulier si tu n'effectue pas de requêtes intensives. Sinon tu peux optimiser l'accès en chargeant une partie des données dans un tableau en les triant avec sql, mais à condition que l'ajout d'un champ dans la base de données soit une opération rare. Sans quoi il faudrait également optimiser l'ajout des données, mais c'est plus compliqué si tu as aussi optimisé l'accès

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut
    En fait, il ne s'agit pas du tout de remplacer une base de donnée.
    IL s'agit au contraire d'extraire d'une base, et d'effectuer des traitements sur les données.
    Le volume sera faible, je dirais maximum 100/200 couples.

    Mais en fait, je vais à priori m'orienter plus vers un treeMap ...

  4. #4
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    A priori, d'un point de vue performance, il est clair que la base de données est la mieux placée pour faire un tri... alors pourquoi tu ne t'arrange pas pour faire une requête dans ta base de données qui te ramène un résultat déjà trié ?

    Sinon, je crois qu'en effet, comme toi, je me tournerai vers un TreeMap.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut
    Ben je peux pas en fait ... Je suis chez un client, je dois utiliser les méthodes d'accès développés par le client (ils ont mis en place il y a qq années un système type Hibernate, je dois m'y cantonner ...)

    Merci pour vos infos, en tout cas !

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut
    En fait, j'ai besoin de quelque chose d'un poil différent ...

    J'ai besoin de :
    [time;{objet;nbEntier}]
    ou
    [time;objet;nbEntier]

    J'ai cru voir que le treemap ne permettait pas d'avoir un couple de 3 valeurs,c'est pour ca qu'à priori je m'oriente vers la premiere solution. Mais comment obtenir le "sous-couple" {objet;nbEntier} ? un array ? Y a pas mieux ?

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 194
    Par défaut
    Citation Envoyé par had35
    Je pense que tu ne spécifie pas correctement les types paramétrés de TreeSet. Si le paramètre de temps est un long, tu es obligé d'utiliser un enveloppeur java.lang.Long.
    je pensais en fait à TreeMap qui correspond à ce que tu veux (couple clé-valeur).

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

Discussions similaires

  1. Tri multi-criteres sur une liste d'objets
    Par Rolf-IV dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2009, 09h21
  2. Tri sur liste d'objet
    Par topolino dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/01/2009, 11h59
  3. Tri sur une liste d'objet
    Par Poussy-Puce dans le forum C#
    Réponses: 4
    Dernier message: 12/05/2008, 18h35
  4. Tri d'une liste d'objets en se basant sur leurs attributs
    Par freestyler1982 dans le forum Langage
    Réponses: 11
    Dernier message: 22/11/2007, 16h33
  5. Tri d'une liste d'objet CObList
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 13/07/2005, 14h50

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