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 :

probleme avec Hashmap et LinkedBlockingQueue


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut probleme avec Hashmap et LinkedBlockingQueue
    Bonjour,

    je veux creer une pile par valeur. c'est a dire utiliser un hasmap (cle, valeur) ou cle est un entier et valeur est une pile LinkedBlockingQueue.

    je veux en fonction de la cle passee recuperer la pile pour faire un pile.take().

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     static HashMap associations = new HashMap(4);
    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
    public void recevoirId(int identVoisin, int idEnv)throws RemoteException
    	{
    		System.out.println("recevoirId identVoisin: " +identVoisin+" idEnv:"+idEnv);
    		if(nt==1){
    			if(!associations.containsKey(identVoisin)){
    				associations.put(identVoisin, new LinkedBlockingQueue<Integer>());
    				voisinsId[nveauVoisin]=identVoisin;
    				nveauVoisin++;
    				System.out.println("Ajout association");
    			}
    		}
    		Object obj = associations.get(identVoisin);
    		try {
     
    			((LinkedBlockingQueue<Integer>)obj).put(Integer.valueOf(idEnv));
    		} catch (InterruptedException e) {
    			System.out.println("Erreur dans recevoirId(int identVoisin, int idEnv)\n\n");
    			e.printStackTrace();
    		}
    	}
    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
     for(int i=0;i<nbVoisin;i++){
     
    	obj= associations.get(voisinsId[i]);
     
    	try {
     
    		BlockingQueue<Integer> blockingQueue = ((BlockingQueue<Integer>)obj);
     
     
    		q=blockingQueue;
    		q.take();
     
    		Integer x=q.take();
     
    	        int valeurId=x.intValue();
     
    		} catch (InterruptedException e) {
    			System.out.println("Erreur dans plusGrdId()\n\n");
    			e.printStackTrace();
    			}
    		}
    le probleme c'est que obj est vide donc j'arrive pas a faire q.take().

    pourquoi ca marche pas ? est il correcte de mettre une pile dans un hashmap ?

    Cordialement

  2. #2
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    Finalement j'ai trouve. Pour ceux que ca interresse, il manquait le teste sur le hasmap pour savoir si toutes les piles ont ete initialisees, c'etait tout bete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // test si toutes les piles dans le hashmap ont ete initialisees
    		while(associations.size()<nbPile){
        		try {
    				Thread.sleep(500);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
        	}

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

Discussions similaires

  1. Probleme d'utilisation avec Hashmap
    Par zouboumafou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 14/05/2010, 02h32
  2. Problem avec HashMap
    Par cyrodil dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 23/04/2009, 14h36
  3. [Velocity] Probleme avec HashMap
    Par Katachana dans le forum Documents
    Réponses: 2
    Dernier message: 02/07/2007, 15h33
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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