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 :

[débutant] Tableau associatif


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut [débutant] Tableau associatif
    Bonjour,
    j'ai besoin de créer une sorte de tableau associatif. Je dis "une sorte" parce que mes clés ne doivent pas être uniques, mais plusieurs valeurs seraient associées à une clé.
    L'ordre apprécié serait de type FIFO.
    Je suis allé voir votre explication des maps dans la FAQ mais je n'y trouve pas mon bonheur. Pourriez-vous m'éclairer ?

    Merci d'avance pour toute réponse


    Sempire

  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,


    Tu peux cumuler les deux : une Map pour le tableau associatif dont la valeur est une List qui contiendra les différentes valeurs.

    Si tu es sous Java 1.4 ou inférieur le plus simple serait de se faire une classe qui définira toutes les méthodes, afin d'éviter d'avoir des cast partout dans ton code, par 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class TableauAssociatif {
     
    	private Map map = new HashMap();
     
    	public void add (Object key, Object value) {
    		List list = map.get(key);
    		if (list==null) {
    			list = new ArrayList();
    			map.put(key, list);
    		}
    		list.add(value);
    	}
     
    	public Object get (Object key, int index) {
    		Object result = null;
    		List list = map.get(key);
    		if (list!=null) {
    			result = list.get(index);
    		}
    		return result;
    	}
     
    	public int size (Object key) {
    		int size = 0;
    		List list = map.get(key);
    		if (list!=null) {
    			size = list.size();
    		}
    		return size;
    	}
     
    	/* ... */
    }

    Avec Java 5.0 tu peux utiliser les générics qui permettent d'éviter de gérer les casts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map<Object,List<Object>> tableauAsociatif;
    a++

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut
    Merci beaucoup.
    il n'y a pas de généricité avant java 5.0 ???

  4. #4
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    Citation Envoyé par sempire
    Merci beaucoup.
    il n'y a pas de généricité avant java 5.0 ???
    non

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut
    mais dans les deux cas, les fonction put, get et size sont à écrire n'est ce pas ? pour préciser quelle action nous intéresse.
    ex :
    dans le cas de la généricité, si on fait tableauAsociatif.size() il nous retourne la taille du map et non celle de la liste, ou bien ? si on veut qu'il retourne la taille de la liste, on doit écrire la routine ?


    Merci

    Sempire

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut
    en fait, je développe plutot des pages dynamique (JSP).
    Est ce que c'est possible d'intégrer une classe dans une balise <% %> ??

    Merci

    Sempire

Discussions similaires

  1. [Débutant] Affectation tableau associatif
    Par glayag dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 21/02/2008, 11h09
  2. [Avancés pour débutante]Stockage d'une table (tableau associatif)
    Par delma dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 17/11/2006, 12h16
  3. asp tableau associatif
    Par rfernandez dans le forum ASP
    Réponses: 6
    Dernier message: 19/12/2003, 18h58
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  5. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29

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