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:
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:
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 :
Sur un exemple :
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);
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); } }Tu constates que la liste contient les éléments dans n'importe quel ordre.Envoyé par sortie
Mais tu peux ensuite triér ta liste pour obtenir l'ordre souhaité en ajoutant simplement l'instruction :
La sortie devient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Collections.sort(chaineList);
Si tu veux plus de renseignement sur le tri regarde du coté de Collections.sort() et des interfaces Comparator et Comparable.a
b
c
d
e
A+
Gronono
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);
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.
Ben moi j'ai cliquer sur resolu apres je ne vois pas comment faire
Partager