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 :

transformer Set en List


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut transformer Set en List
    Salut
    J'ai un getter qui me retourne un objet de type Set (java.util.Set) et je veux le transformer en List<User> je n'ai pas trouver comment faire et la javadoc ne m'a pas aidé quelqu'un a une idée??
    Merci d'avance roll:

  2. #2
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Bonjour,

    Un set contenant les éléments sans tris particuliers (sauf un TreeSet). Tandis qu'une liste contenant les éléments suivant un ordre spécifique.

    Donc pour passer du set à la liste, il te faut triér tes éléments. De plus tu perds le fait qu'un set ne peut contenir de doublons.

    Maintenant si l'ordre d'importe peu, tu peux faire simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set set = ....
    List<User> users = new ArrayList<User>(set.size());
    users.addAll(set);
    Sur un exemple :
    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
    public static void main(final String[] args) {
    		final Set<String> chaineSet = new HashSet<String>();
    		chaineSet.add("a");
    		chaineSet.add("b");
    		chaineSet.add("c");
    		chaineSet.add("d");
    		chaineSet.add("e");
    		for (final String chaine : chaineSet) {
    			System.out.println(chaine);
    		}
    		System.out.println("---");
    		final List<String> chaineList = new ArrayList<String>(chaineSet.size());
    		chaineList.addAll(chaineSet);
    		for (final String chaine : chaineList) {
    			System.out.println(chaine);
    		}
    	}
    Citation Envoyé par sortie
    d
    a
    c
    b
    e
    ---
    d
    a
    c
    b
    e
    Tu constates que la liste contient les éléments dans n'importe quel ordre.

    Mais tu peux ensuite triér ta liste pour obtenir l'ordre souhaité en ajoutant simplement l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.sort(chaineList);
    La sortie devient :
    a
    b
    c
    d
    e
    Si tu veux plus de renseignement sur le tri regarde du coté de Collections.sort() et des interfaces Comparator et Comparable.

    A+
    Gronono

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Citation Envoyé par gronono Voir le message
    Bonjour,
    Maintenant si l'ordre d'importe peu, tu peux faire simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set set = ....
    List<User> users = new ArrayList<User>(set.size());
    users.addAll(set);
    Je dirais même plus, tu peux faire simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set set = ....
    List<User> users = new ArrayList<User>(set);

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    Merci bcp
    ca marche nickel

  5. #5
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Citation Envoyé par Duc Lebowski Voir le message
    Je dirais même plus, tu peux faire simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set set = ....
    List<User> users = new ArrayList<User>(set);
    Effectivement, j'oublie tout le temps ce constructeur.

    Citation Envoyé par dominou73
    ca marche nickel
    Un peu clic sur le bouton "Résolu".

    A+
    Gronono

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    deja fait

  7. #7
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Citation Envoyé par dominou73 Voir le message
    deja fait
    Au temps pour moi.

    Mais c'est bizarre dans la barre contenant le titre du message (en haut : Forum des développeurs> .... >transformer Set en List), il n'y a pas marqué "Résolu". Je vais vérifier sur d'autres posts si c'est écrit.

    Edit : La mention "Resolu" n'apparait pas sur la page du message, il faut retourner dans la liste des posts pour s'apercevoir que le message est résolut. Mais peut-être que je suis aveugle.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    Ben moi j'ai cliquer sur resolu apres je ne vois pas comment faire

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2011, 09h11
  2. Transformer un Set en List !
    Par Tail dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 13/03/2011, 14h01
  3. Requête : transformer string en liste
    Par DrizztDo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/02/2009, 14h43
  4. Transformer array en liste html
    Par jcaspar dans le forum Langage
    Réponses: 1
    Dernier message: 19/08/2008, 17h40
  5. [XSLT]Transformation d'une liste de virgule
    Par Le-Cortex dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/03/2006, 17h18

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