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

avec Java Discussion :

Initialisation de TreeMultimap en Java


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut Initialisation de TreeMultimap en Java
    Salut tout le monde,

    J'ai essayé d'initialiser une TreeMultimap en utilisant le code suivant mais ca n'a pas vraiment marché.

    TreeMultimap<Float, Map<Integer, String>> treeMap = new MultiMap<Float, Map<Integer, String>>();

    En fait, à chaque Float, je cherche à associer un couple de (Integer,String). Une clé (Floar) peut avoir plusieurs valeurs.

    Ex :

    5.0 -> (1,"A")
    5.0 -> (2,"B")
    4.0 -> (6,"F")
    3.0 -> (7,"G")
    3.0 -> (10,"J")

    Est ce qu'il y a d'autres moyens pour initialiser une telle TreeMultimap ?


    Meci de votre aide.

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,
    Citation Envoyé par ahmadou_20 Voir le message
    J'ai essayé d'initialiser une TreeMultimap en utilisant le code suivant mais ca n'a pas vraiment marché.
    Qu'est ce qui n'as pas marché ? Tu as une erreur ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    C est l initialisation qui n est pas bonne en fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TreeMultimap<Float, Map<Integer, String>> treeMap = new TreeMultimap<Float, Map<Integer, String>>();
    Le message affiche est :

    The constructor TreeMultimap<Float,TreeMultimap<List<LegDate>,String>>() is undefined.

    Merci.

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    MultiMap est une interface et on ne peux pas instancier une interface (autrement dis, faire un new) !

    effectivement tu peux ecrire comme tu viens de le mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TreeMultimap<Float, Map<Integer, String>> treeMap = new TreeMultimap<Float, Map<Integer, String>>();
    ou alors cela marche aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiMap<Float, Map<Integer, String>> treeMap = new TreeMultimap<Float, Map<Integer, String>>();
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par ahmadou_20 Voir le message
    Le message affiche est :
    The constructor TreeMultimap<Float,TreeMultimap<List<LegDate>,String>>() is undefined.
    Ce message ne correspond pas a l'initialisation présenté précédemment ???
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Oui mais ca n a pas l air de marcher dans mon code.

    C est tjs le meme probleme de constructeur que j ai en fait.

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    met le code qui plante car la je suis pas sure de comprendre !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Voila

    TreeMultimap<Float, Map<Integer, String>> treeMap = new TreeMultimap<Float, Map<Integer, String>>();



    ca plante a ce niveau en fait : au niveau de l initialisation de TreeMultimap.


    Il m ecrit :
    The constructor TreeMultimap<Float,Map<Integer,String>>() is undefined.

  9. #9
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Je ne connais pas cette api, mais selon la javadoc, il n'y a effectivement pas de constructeur et tu dois passé par la methode create !
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TreeMultimap<Float, String> map = TreeMultimap.create();
     
    	map .put(5.0, "A");
    	map .put(5.0, "B");
    	map .put(4.0, "F");
    	map .put(3.0, "G");
    	map .put(3.0, "J");
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    oui en fait la methode create n accepte que des types simples au sein de la TreeMultiMap comme tu viens de le mettre par exemple : TreeMultimap<Float, String> map = TreeMultimap.create();

    mais a partir du moment ou j utilise des objets "complexes" (map ou liste) ca marche pas.

    En fait,

    l intanciation TreeMultimap<Float, String> map = TreeMultimap.create(); est bonne

    alors que TreeMultimap<Float, List<String>> map = TreeMultimap.create(); ne l est pas. Elle genere une erreur.


    Pareil pour le cas que j ai expose au debut avec les maps.


    C est ce que j arrive pas a resoudre pour le moment en realite.


    Merci

  11. #11
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    je pense que ce n'est tout simplement pas le but de l'api et de plus il faut que les valeurs soient comparable pour appliqué le tri ce qui me semble compliqué sur les liste ou map !

    Il est possible aussi que tu n'es pas compris le fonctionnement de ce type de Map.
    L'exemple que je t'ai mis permettra d'avoir dans la map :
    5.0 --> "A", "B"
    4.0 --> "F"
    3.0 --> "G", "F"
    si ce n'est pas un regroupement telque celui ci que tu souhaites alors il faudra que tu le fasses toi meme avec des maps classiques.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    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
    Salut,

    D'après la doc, les types paramétrés doivent être Comparable : public static <K extends Comparable,V extends Comparable> TreeMultimap<K,V> create(). Ce qui n'est pas le cas d'une Map, ou d'une List.
    La HashMultimap ne te conviendrait-il pas ? Si tu veux une MultiMap triée, il te faudra définir des relations d'ordre sur les clefs et valeurs, et utiliser la méthode create qui prend des Comparator en argument.
    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.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    J essaierai de voir avec les HashMultimap mais l ideal pour moi serait de travailler avec des treeMultimap directement sans faire appel aux comparateurs.

    Merci en tout cas

  14. #14
    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
    Le TreeMultimap sont aux MultiMap, ce qu'on sont les TreeMap sont au Map, c'est-à-dire des SortedSetMap (SortedMap pour Map), donc des classes qui se fondent sur la notion d'ordre de tri : dire que tu veux pouvoir utiliser des TreeMultimap sans notion de relation d'ordre n'a pas de sens, à priori. D'où les méthodes create : en fait, on pourrait se demander pourquoi les paramètres K et V de la classe TreeMultiMap ne sont pas définis comme extends Comparable. C'est justement pour permettre la souplesse de définir une TreeMap sur des classes non directement implémentant Comparable, pour lesquelles on doit, donc, fournir un comparateur pour que la TreeMultimap puisse remplir la totalité de ses fonctions.
    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.

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    D accord merci.

    mais je vois pas trop quand meme comment pouvoir utliser les comparateurs pour permettre aux TreeMultimap de prendre des des classes non directement implémentant Comparable (map ou liste)

    Est ce que tu aurais un petit exemple qui pourrait m expliquer davantage ce point ?

    Merci.

  16. #16
    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
    Le but de fournir un Comparator pour une classe non Comparable, c'est justement de fournir la méthode qui définit la relation d'ordre entre 2 instances, tout comme Comparable en fait.

    A la base, il faut donc définir la relation d'ordre, c'est-à-dire dans quelle condition une instance est considérée inférieure, égale ou supérieure à une autre. Ce qui est assurément loin d'être évident pour une List, encore moins pour une Map... De manière globale, si naturellement tu ne peux définir de relation d'ordre, inutile de chercher à l'implémenter, avec ou pas exemple.
    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.

Discussions similaires

  1. Liste d'initialisation en java ?
    Par jph_void dans le forum Langage
    Réponses: 12
    Dernier message: 13/05/2008, 09h44
  2. [SAX] Initialisation d'une méthode java à partir d'un xml
    Par Arno83 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 26/02/2008, 11h03
  3. [Débutant]Problème initialisation applet JAVA, jBoss 4.0.4
    Par Widiwi dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 18/05/2007, 16h05
  4. [Debutant]Problème d'initialisation Java
    Par Mopade dans le forum Langage
    Réponses: 9
    Dernier message: 22/10/2006, 19h38
  5. Réponses: 2
    Dernier message: 05/06/2004, 00h12

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