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 :

Choix d'un type de Collection


Sujet :

Langage Java

  1. #1
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut Choix d'un type de Collection
    Bonjour,

    Je cherche la collection appropriée pour stocker et manipuler des objets chaînés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Class MyObjet {
       private MyObject previous=null;
       private MyObject next=null;
       public MyObject getPrevious { return previous; }
       public MyObject getNext { return next; }
       public void setPrevious(MyObject p) { previous=p; }
       public void setNext(MyObject n) { next=n; }
       }
    Je voudrais stocker ces objets dans une collection. Dans laquelle :
    - je voudrais pouvoir manipuler les .next et .previous de chaque élément et que cela se reflète sur la collection sans que je doive intervenir sur la collection.
    - je voudrais pouvoir vers des first() et des last() sur la collection.

    Je serai garant que les objets dans cette collection fasse partie de la même chaîne, et qu'il n'y ait pas de fourche dans la chaîne.

    Mon idée de base était le TreeSet mais j'ai besoin d'un comparator et je ne vois rien de simple puisque je ne peux pas comparer directement 2 objet A et B sans parcourir la chaîne.
    Cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Comparator<MyObject> comparator=new Comparator<MyObject>() {
        public int compare(MyObjecto1, MyObjecto2) {
            if (o1.equals(o2)) return 0;
            while (o1==null) {
                o1=o1.getPrevious();
                if (o2.equals(o1)) return 1;
            }
            return -1;
        }
    Perso, je ne suis pas fan.

    P'te info: la collection fait 500 éléments maximum.

    Y a-t-il mieux ?

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je ne comprends pas ce que tu demandes, ni comment un TreeSet aurait pu possiblement t'aider à l'avoir, Comparator ou pas.

    Si tu veux une Collection dédiée à chaîner des objets, c'est la Collection qui va s'occuper de les chaîner, bien sûr, ce ne sont pas les objets eux-mêmes.
    Si les objets savent comment se trouver les uns les autres, alors la Collection c'est eux, tu as juste réinventé ta propre Collection.

    Pour faire une liste chaînée on utilise LinkedList. Il y a getFirst(), getLast(), et listIterator() qui te permet de reculer ou avancer dans le parcours de la liste, enlever des éléments ou en ajouter.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Mes objets sont comme ils sont. Une bonne partie du code tire parti du fait qu'ils se chaînent entre eux.

    Je sentais bien une réponse comme tu l'as faite.

    La seule différence avec une réelle collection, ce que dans une collection, il y a un niveau au-dessus, qui chapeaute les objets et qui contient toutes les méthodes de type getFirst, getLast, getIterator, ...Ca, ça me manque.
    Une suggestion de manière de les implémenter ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    ... Un objet qui pointe vers le premier et le dernier ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par thelvin Voir le message
    ... Un objet qui pointe vers le premier et le dernier ?
    +1. On pourrait même implémenter l'interface Collection, afin de pouvoir l'utiliser comme une Collection.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    +1. On pourrait même implémenter l'interface Collection, afin de pouvoir l'utiliser comme une Collection.
    C'est fait. J'ai créé un objet au-dessus qui implémente NavigableSet<MyObject> et tou passe par lui. Je me suis basé sur le code du TreeMap, qui définit un élément root, qui, en gros, est le premier ajouté à la collection et fait tout à partir de lui.
    Tout cela devient très propre. Merci pour vos conseils.

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

Discussions similaires

  1. choix du content-type dans fichier attaché d'un mail
    Par serge0934 dans le forum Modules
    Réponses: 2
    Dernier message: 06/06/2007, 13h51
  2. Choix d'un type de position
    Par mulot49 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/04/2007, 11h29
  3. [Table]choix d'un type de données
    Par moktar86 dans le forum Modélisation
    Réponses: 2
    Dernier message: 16/04/2007, 10h41
  4. Enlever un choix dans les types
    Par rvzip64 dans le forum Delphi
    Réponses: 15
    Dernier message: 23/01/2007, 12h06
  5. [Choix] Recherche Script type portail, avec espace administration et espace membre
    Par un_passant dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 08/08/2006, 11h56

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