Recherche dans une hashtable JAVA

Fermé
gad86 Messages postés 12 Date d'inscription jeudi 12 avril 2012 Statut Membre Dernière intervention 11 juin 2012 - 11 juin 2012 à 11:51
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 11 juin 2012 à 14:19
Bonjour,

Je suis entrain de développer une application en java.Après la lecture du fichier txt, je dois comparer les chaines de caractères récupérées avec le contenu mon hashtable.Si la chaîne de caractères correspond à l'un des éléments de mon hashtable, je dois récupérer le key de cette élément sinon je récupère la chaine de caractère qui se trouve dans le fichier.Pour cela j'ai fait cette boucle

Enumeration e=ht.keys();


while(e.hasMoreElements())

{
obj=e.nextElement();


if (!isotop.equals(ht.get(obj)))
{
System.out.println(isotop);

}

else
{
moliso=Integer.parseInt((obj.toString().trim()));
System.out.println("moliso = " +moliso);
break;
}

le problème est au niveau du else il me retourne que 1 fois sur deux que l'élément existe malgré qu'il existe vraiment.Merci pour votre aide.


A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 juin 2012 à 14:19
Hashtable, Enumeration, tout ça c'est du vieux Java version 1.
Depuis la version 2, il est préférable d'utiliser HashMap, et les Iterator (à l'aide d'une boucle for each depuis la version 5)

HashMap<String,String> map = new HashMap<String,String>();
String isotop;

// ...

for (String key : map.keySet())
{
    if (map.get(key).equals(isotop))
    {
        int moliso=Integer.parseInt(key.trim()));
        System.out.println("moliso = "+moliso);
        //break; // ?
    }
    else
    {
        System.out.println(isotop);
    }
}
0