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 :

[debutant] probleme de choix de conteneur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut [debutant] probleme de choix de conteneur
    Bonjour,

    J'ai un algo en tete, et une idée dont ça pourrait se passer, mais je ne sais pas quel conteneur choisir.

    J'ai une map dont les clés sont de type String, et les éléments d'un autre type, et je veux qu'a chaque appel d'une fonction, je récupere le premier élément de cette map, et que je puisse retirer l'élément de cette map en prévision du prochain appel.

    Y aurait - il un type hybride file/map qui possède une méthode pop() ou équivalent ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Bon, pour l'instant je fais, dans la maigre mesure de mes moyens, un truc de cochon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      public synchronized Map.Entry<String, ArrayList<Item>> getItemList()
      {
         Iterator it = itemMap.entrySet().iterator();
     
        if (! it.hasNext())
          return null;
     
         return it.next();
      }
    Il me reste ensuite a supprimer l'entrée.

    Mais y'aurait pas un moyen moins laid de faire ça dites?

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Je pense que ton problème se situe au niveau de la conception, tu ne devrais pas utiliser de Map pour ton problème ( si d'autre veulent bien confirmer... ).
    Une map ne possède pas de notion d'ordre d'où une mauvaise utilisation si tu veux retirer le premier élément à chaque fois ( Rien ne te garanti que le premier élement soit le premier inséré ! ).
    Une file ( java.util.Queue ) serait bien plus adaptée à ton problème, notamment grace à sa méthode peek() qui fait ce que tu cherches à réinventer. Maintenant, tu vas me dire que cela ne correspond plus à ton problème car on perd la notion de clef-valeur. Pour garder ce concept, créer une classe qui aura comme attribut un string ( la clef ) et on objet ( la valeur ), ce sont les instances de cette classe que tu mettras dans la file.

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Citation Envoyé par iohack
    ( si d'autre veulent bien confirmer... )
    Je n'irai pas jusque là, mais perso j'utilise une ArrayList en plus d'une Map pour une pile LILO (j'ai pas droit à la Queue avec une 1.4.2 ! )

    La Map sert toujours à stocker les paires clef/valeur, et l'ArrayList à stocker uniquement les clefs. Ainsi, je peux faire des push et des pop sur l'ArrayList, le push empilant les clefs à la fin de l'ArrayList, le pop récupérant le premier élément, et le supprimant avec un remove() par la même occasion. Il ne reste plus ensuite qu'à enlever la clef récupérée de la Map.

    Cela dit, si la Map ne te sert pas pour un boulot de Map, tu peux te limiter à l'ArrayList avec un objet adapté, comme l'a expliqué iohack.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2004, 11h40
  2. [Debutant]Probleme pour Debugger sours JCreator
    Par Flam dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 1
    Dernier message: 12/05/2004, 19h27
  3. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21
  4. [debutant]probleme servlet
    Par noOneIsInnocent dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/09/2003, 13h25
  5. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29

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