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 :

Des Enum dans une liste?


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Par défaut Des Enum dans une liste?
    Bonsoir!

    Je me demandais s'il existe une façon de mettre des enum à l'intérieur d'une liste quelconque? Je pensais au début qu'il fallait utiliser un EnumMap mais si j'ai bien compris c'est une Enumération de Maps et malheureusement non l'inverse.

    Merci d'avance!

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Les enums sont des objets comme les autres. Donc il n'y a aucun soucis pour les stocker dans une collection quelconque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list.add(MyEnum.A);
    list.add(MyEnum.B);
    list.add(MyEnum.C);
    Maintenant tu peux utiliser la méthode values() et Arrays.asList() pour récupérer toutes les valeurs dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    List<MyEnum> myEnums = Arrays.asList(MyEnum.values());
     
    list.addAll(myEnums);

    a++

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    (Par ailleurs, EnumMap n'est pas une énumération de Maps. C'est une implémentation de Map étudiée pour utiliser efficacement des Enum comme clés.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Par défaut Salut!
    Merci pour les réponses super rapides!

    Et du coup, si j'ai bien compris, là je met tout simplement les valeurs d'un Enum dans une liste. Merci d'ailleurs pour le code pour les transférer toutes, après, moi, mon but c'est de stocker plusieurs Enum dans des listes, c'est à dire, je veux plutôt faire:

    list.add(MyEnum1);
    list.add(MyEnum2);
    list.add(MyEnum3);


    Menfin sauf si je me trompe, dans mon code, ça ne marche pas ça. Du coup, je suppose que je peux mettre ma liste dans un HashMap de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map<String,List> Enums= new HashMap<String,List>();
    Comme ça j'aurais le nom de l'enum dans la string et dans la liste j'aurais tous les éléments de l'Enum en question.

    Après ça me semble assez "sale" et je sais que les HashMap ça prend beaucoup de ressources et faut éviter autant que possible. Du coup, je me demande s'il n'y a pas une façon plus simple et moins gourmande de faire.

    Merci encore!

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourriez vous nous dire "concrètement" avec un exemple, ce que vous allez stocker dans votre liste.

    Parce que vitre exempel donnée n'a ni queue ni tête: MyEnum1, MyEnum2, MyEnum3, ça se sont des noms de class, si vous voulez stocker des références au classe et non pas à leur instance dans une list, c'est une List<Class<?>> qu'il vous faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    List<Class<? extends Enum>> list  = ....;
    list.add(MyEnum1.class);
    list.add(MyEnum2.class);
    list.add(MyEnum3.class);

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Par défaut
    et bien j'ai mes enum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            public enum lookingFor {
    	    F, G, H
    	}
     
    	public enum politicalV{
    	G , H, F	
    	}
     
    	public enum interestedIn{
    	G, J, D
    	}
    Je désire stocker ces Enum dans une liste pour pouvoir les donner en paramètre à un autre objet à partir duquel je pourrais récupérer mes enum. Le problème c'est que le nombre d'Enum varie à chaque fois, d'où là nécessité de les mettre tous ensemble dans un container!

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    j'ai du mal à voir en quoi l'aobjet arriverais à faire quelque chose de ces enums de type différents, mais bon, admettons, il suffit simplemetn de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    List<Enum<?>> maListe = ...
    maListe.add(LookingFor.F);
    maListe.add(LookingFor.G);
    maListe.add(LookingFor.F);
    maListe.add(PoliticalV.G);
    maListe.add(PoliticalV.H);

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Par défaut
    Seulement là à priori j'aurais un problème pour savoir (quand je récupère les Enum) quand j'ai finit le premier et je commence le second non?

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est bien ce que je dit, regrouper des enums de type différents, ca n'a aucun sens, vous essayez de faire quoi au juste avec tout ça? C'est quoi le but?

Discussions similaires

  1. [VB.NET][ListView]des images dans une list view
    Par pcdj dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/12/2005, 12h08
  2. Intercaler des "titres" dans une liste ?
    Par tikawua dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/10/2005, 10h40
  3. [Lisp] Suppression des parenthèses dans une liste
    Par bourdaillet dans le forum Lisp
    Réponses: 3
    Dernier message: 19/12/2004, 21h02
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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