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 :

Multimap en java ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 500
    Par défaut Multimap en java ?
    Bonjour,
    Je cherche a faire un graphe et donc j'aimerais savoir si il existe un équivalent des multimap C++ en java.
    Si oui, quelle classe le permet ?
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Tu as essayé avec une IdentityHashMap ?

    Elle compare les clés avec l'opérateur == et non avec la méthode equals()

    Comme dans les tests, on ne fait généralement pas "a" == "a" mais "a".equals("a"), cela doit signifier que les 2 Strings "a" doivent avoir une adresse mémoire différente (je n'ai pas tester)

    Cela doit donc fonctionner avec une IdentityHashMap si des clés sont des instances différentes.

    Sinon, tu utilises une HashMap classique mais comme valeur, tu met une ArrayList de valeurs.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 500
    Par défaut
    Ca ne marches pas, les clés doivent être unique et non null.
    Pour le moment je me suis tourné vers une librairie externe : jakarta commons collections de Apache ou je retrouve les MultiMap mais je suis obligé de l'importer dans le projet étant donnée qur ca ne fait pas partie des librairies standard.

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.IdentityHashMap;
     
    public class Test
    {
        public static void main(String[] args)
        {
            IdentityHashMap<String, String> map = new IdentityHashMap<String, String>();
            map.put(new String("a"), "v1");
            map.put(new String("a"), "v2");
     
            System.out.print("a" == "a"); // true
            System.out.print(new String("a") == new String("a")); // false
        }
    }
    On peut bien mettre deux clés nommés "a" si on fait un new String() !
    Par contre, pas moyen de récupérer les 2 valeurs avec un map.get("a") , ni une seule du moment où on n'a pas gardé la référence sur la String.
    Du coup, ça ne fait pas ce que tu veux !!!

    Je pense qu'en revanche ma deuxième proposition fonctionne (avec les listes pour valeurs et la clé "null" pour les éléments null) Bien entendu, il faut écrire un peu de code et si les collections Apache le font, autant t'en servir.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 500
    Par défaut
    Je vais essayer les collections apache, c'est tout le temps bin réalisé

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

Discussions similaires

  1. Manipulation des listes dans des multimap en java
    Par ahmadou_20 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 16/06/2014, 15h34
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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