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 :

Parcourrir un hashtable


Sujet :

Collection et Stream Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut Parcourrir un hashtable
    Bonjour,

    Voila comme le dit le titre, je voudrais parcourir un hashtable.
    J'ai créer un hashtable<String,Integer>.
    L'attribut est une variable de classe d'un type Question que j'ai créer.
    Le fait est que pour une question, nous avons plusieurs réponses possibles.
    Aussi je voudrais que mon questionnaire soit exportable sur le Web.
    Pour rajouter de l'interractivité j'ai rajouté un attribut goto (fichier XML de définition).
    Ainsi je voudrais stocker l'intitulé possible,l'attribut goto
    Je sais pas si c'est le bon type de collections que j'utilise.
    Je voudrais quelque chose de facilement lisible (que je puisse parcourrir).
    ET surtout dedans je voudrais stocker au moins un String (libellé de la réponse possible) et un int (ou Integer),

    Que me conseiller vous de choisir ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    pour l'instant j'ai fait
    (q.getPossibilities() me retourne un Hashtable<String,Integer>)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Iterator<String> it = q.getPossibilities().keySet().iterator();
    		while (it.hasNext()) // tant que j'ai un element String non parcouru
    		{
    		  String s = it.next();
    		  System.out.println(it.next());
    		}
    mais j'ai une erreur
    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
    34
    35
    36
    37
    38
    39
    40
    41
     
    Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException: Hashtable Enumerator
    	at java.util.Hashtable$Enumerator.nextElement(Hashtable.java:1039)
    	at java.util.Hashtable$Enumerator.next(Hashtable.java:1050)
    	at com.datalion.exogema.gui.frame.Main.addQuestion(Main.java:74)
    	at com.datalion.exogema.application.Question.<init>(Question.java:31)
    	at com.datalion.exogema.application.Enquiry.<init>(Enquiry.java:36)
    	at com.datalion.exogema.application.Document.read(Document.java:125)
    	at com.datalion.exogema.gui.MenuBarActionListener.actionPerformed(MenuBarActionListener.java:35)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2013)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2336)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:260)
    	at javax.swing.AbstractButton.doClick(AbstractButton.java:375)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1689)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1799)
    	at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:586)
    	at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:483)
    	at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429)
    	at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:322)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1735)
    	at java.awt.Component.processMouseEvent(Component.java:6100)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3288)
    	at java.awt.Component.processEvent(Component.java:5865)
    	at java.awt.Container.processEvent(Container.java:2110)
    	at java.awt.Component.dispatchEventImpl(Component.java:4461)
    	at java.awt.Container.dispatchEventImpl(Container.java:2168)
    	at java.awt.Component.dispatchEvent(Component.java:4287)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4466)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4130)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4060)
    	at java.awt.Container.dispatchEventImpl(Container.java:2154)
    	at java.awt.Window.dispatchEventImpl(Window.java:2555)
    	at java.awt.Component.dispatchEvent(Component.java:4287)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:605)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:276)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:191)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:186)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:139)

  3. #3
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (it.hasNext()) // tant que j'ai un element String non parcouru
    		{
    		  String s = it.next();
    		  System.out.println(it.next());
    		}
    Normal, tu fais deux fois it.next() ! Plutôt comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (it.hasNext()) // tant que j'ai un element String non parcouru
    		{
    		  String s = it.next();
    		  System.out.println(s);
    		}

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Par défaut
    pas sur que ça passe directement pour moi il faut faire un transtypage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (it.hasNext())
    		{
    		  String s = (String) it.next();
    		  System.out.println(s);
    		}

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Avant Java 5, oui.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Par défaut
    Ah je ne savais pas, mais bizat quand je mets un Iterator sur un ArrayList<MonType> il me faut absolument faire un transtypage sinon eclipse me mets une erreur .. je vais retester.

  7. #7
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Perso le mieux pour parcourir une HashMap ou HashTable c'est le EntrySet :

    JDK 1.4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    final Iterator iter = params.entrySet().iterator();
    while (iter.hasNext()) {
    	final Map.Entry item = (Map.Entry)iter.next();
    	final String key = (String)item.getKey();
    	final String value = (String)item.getValue();
    	//TODO Traitement
    }

Discussions similaires

  1. [VB.NET] HashTable
    Par mardoch dans le forum ASP.NET
    Réponses: 8
    Dernier message: 23/06/2009, 12h58
  2. [HashMap] Modification d'objet d'une Hashtable
    Par viena dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/07/2004, 09h04
  3. [JSP][STRUTS]Cle d'une hashtable
    Par julienOriano dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/06/2004, 13h47
  4. Hashtable
    Par Gogoye dans le forum C
    Réponses: 5
    Dernier message: 23/09/2003, 16h59

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