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 :

Collection : Utilisation de TreeSet


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut Collection : Utilisation de TreeSet
    bonjour à vous tous ..

    Par le biais du code suivant je voudrais récupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public SortedSet<Object1> getListeObjet1Triee() {
     
            ArrayList lstObjet1 = new ArrayList(getListeObjet1());
     
            Collections.sort(lstObjet1 , GetComparator());
     
            // 1  Ici mon lstObjet1  est ordonné
     
            return new TreeSet(lstObjet1  );
     
          // 2
    Au point 1 mon lstObjet1 est ordonné comme je veux mais des que je le mets dans le TreeSet ..et que je recuère celui là ..celui la (le TreeSet qui contient les element de ma liste d'Objet1 ) n'est plus ordonné ..

    Y a un truc qui m'echappe..

    avez vous une idée?
    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Bonjour,
    Et si tu faisais peut-être ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public SortedSet<Object1> getListeObjet1Triee() {
     
            ArrayList lstObjet1 = new ArrayList(getListeObjet1());
     
            TreeSet<Object1> set = new TreeSet<Object1>(GetComparator());
            set.addAll(lstObjet1);
     
            return set;
    }
    Je n'ai pas testé, mais j'espère que ça aide.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par manblaizo Voir le message
    Bonjour,
    Et si tu faisais peut-être ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public SortedSet<Object1> getListeObjet1Triee() {
     
            ArrayList lstObjet1 = new ArrayList(getListeObjet1());
     
            TreeSet<Object1> set = new TreeSet<Object1>(GetComparator());
            set.addAll(lstObjet1);
     
            return set;
    }
    Je n'ai pas testé, mais j'espère que ça aide.
    J'ai déjà essayé cela mais j'ai le même souci..
    peut etre n'ai je pas compris qlq chose !

  4. #4
    Membre confirmé Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Par défaut
    Tu peux nous montrer le code de ta méthode getComparator() ?

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par venegan Voir le message
    Tu peux nous montrer le code de ta méthode getComparator() ?

    La méthode Getcomparator n'est pas à incriminer ..

    la question qui se pose pourquoi quqnd je mets la list dans le treeset , je perds l'ordre..

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Citation Envoyé par MASSAKA Voir le message
    J'ai déjà essayé cela mais j'ai le même souci..
    peut etre n'ai je pas compris qlq chose !
    Pourtant moi je viens de tester rapidement le code suivant, et ça marche très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    import java.util.*;
     
    public class TestCollection {
     
    	public static void main(String[] args) {
    		ArrayList<String> list = new ArrayList<String>();
    		list.add("mome");
    		list.add("abc");
    		list.add("zilla");
    		list.add("omni");
     
    		TreeSet<String> set1 = new TreeSet<String>(list);
    		System.out.println("set1 : " + set1);
     
    		TreeSet<String> set2 = new TreeSet<String>(new Comparator<String>(){
    			public int compare(String s1, String s2) {
    				return s2.compareTo(s1);
    			}
    		});
     
    		set2.addAll(list);
    		System.out.println("set2 : " +set2);
    	}
     
    }
    Voici le résultat que j'ai en sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set1 : [abc, mome, omni, zilla]
    set2 : [zilla, omni, mome, abc]
    Dans le premier cas, set1 trie ses éléments suivant l'ordre naturel (ordre croissant), et pour le second, set2, je lui passe un Comparator qui sera utilisé pour le tri. Ce Comparator trie par ordre décroissant, et le résultat en sortie montre que ça fonctionne.
    Alors, le test porte sur des String, mais ça devrait en principe fonctionner de la même manière pour tes objets <Object1> ...

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par manblaizo Voir le message
    Pourtant moi je viens de tester rapidement le code suivant, et ça marche très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    import java.util.*;
     
    public class TestCollection {
     
    	public static void main(String[] args) {
    		ArrayList<String> list = new ArrayList<String>();
    		list.add("mome");
    		list.add("abc");
    		list.add("zilla");
    		list.add("omni");
     
    		TreeSet<String> set1 = new TreeSet<String>(list);
    		System.out.println("set1 : " + set1);
     
    		TreeSet<String> set2 = new TreeSet<String>(new Comparator<String>(){
    			public int compare(String s1, String s2) {
    				return s2.compareTo(s1);
    			}
    		});
     
    		set2.addAll(list);
    		System.out.println("set2 : " +set2);
    	}
     
    }
    Voici le résultat que j'ai en sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set1 : [abc, mome, omni, zilla]
    set2 : [zilla, omni, mome, abc]
    Dans le premier cas, set1 trie ses éléments suivant l'ordre naturel (ordre croissant), et pour le second, set2, je lui passe un Comparator qui sera utilisé pour le tri. Ce Comparator trie par ordre décroissant, et le résultat en sortie montre que ça fonctionne.
    Alors, le test porte sur des String, mais ça devrait en principe fonctionner de la même manière pour tes objets <Object1> ...

    Merci pour ton exemple
    en effet qund j'utilise cela ..j'ai 16 objet dans la liste originale ListObjet1

    mais le set.addlist( ListObjet1) me renvoie uniquement 9 objets mais

    ordonnés..

    ou sont partis les 7 autres ? je n'ai pas de doublons dans mes objets

    un probleme dans mon comparator?
    effectivement c'est là ou il y avait un souci ! venegan avait raison

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

Discussions similaires

  1. Quelle collection utiliser pour ce type de problème ?
    Par piteon dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 12/10/2011, 07h07
  2. Quelles collections utilisées?
    Par pracede2005 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 18/11/2008, 17h20
  3. [C#] Conseil sur l'utilisation de collection
    Par shinchan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/03/2006, 11h02
  4. vaut il mieux utiliser ArrayList ou implémenter collection?
    Par irnbru dans le forum Framework .NET
    Réponses: 17
    Dernier message: 05/11/2005, 12h51
  5. [VB.NET] Utiliser les collections de contrôles (Textbox)
    Par dinbougre dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/01/2005, 18h57

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