JAVA parcourir une hashmap [Résolu]

A voir également:Parcourir hashmapParcourir une hashmap - Meilleures réponses Parcourir hashmap java - Meilleures réponses Parcourir une chaine de caractère php ✓ - Forum - PHP Parcourir une chaine de caractère en c - Forum - C Bash parcourir fichier - Conseils pratiques - Bash Comment envisagez-vous d'inscrire votre dut techniques de commercialisation dans votre parcours professionnel ou universitaire ? ✓ - Forum - Études / Formation High-Tech Application creer parcours velo ✓ - Forum - Loisirs / Divertissements

Bonjour,

Je souhaite parcourir une hashmap pour voir le contenu des valeurs de ma hashmap en faisant une sorte de boucle for mais je ne sais pas du tout comment faire sur une hashmap.

Merci de m'éclaircir si jamais quelqu'un s'y connait en hashmap.

a+

Forum

A voir également:Parcourir hashmapParcourir une hashmap - Meilleures réponses Parcourir hashmap java - Meilleures réponses Parcourir une chaine de caractère php ✓ - Forum - PHP Parcourir une chaine de caractère en c - Forum - C Bash parcourir fichier - Conseils pratiques - Bash Comment envisagez-vous d'inscrire votre dut techniques de commercialisation dans votre parcours professionnel ou universitaire ? ✓ - Forum - Études / Formation High-Tech Application creer parcours velo ✓ - Forum - Loisirs / Divertissements

Web: www.shapebootstrap.net

11 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Lu,

8 heures? omg. Permier essai: http://www.google.fr/...

Un clic sur la 1ère réponse nous donne ceci: http://www.stanford.edu/...

Si on veut te facturer plus de temps que 2 minutes, ce de l'arnaque, ne paye pas =)

Sinon, pour répondre à ta question, tu n'es pas obligée d'utiliser un iterator. Le simple fait de faire une boucle sur les valeurs de l'ensemble des clefs suffit. Et en Java 5+ c'est assez élégant / lisible. Genre

Map<String, String> hashMap = new HashMap<String, String>();  for (String mapKey : hashMap.keySet()) {  	// utilise ici hashMap.get(mapKey) pour accéder aux valeurs  }


++

Dire « Merci » 46

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 40981 internautes nous ont dit merci ce mois-ci

Reply
réponses:
  • auteur

    parfait, précis.
    Je cherchais a boucler direct sur la map..

    Merci!

    A++

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

personne n'aurait une toute petite idée ???

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Humpf, toujours pas clair xD Je fais la fine bouche, j'sais... xD

Relis-toi. Avant

en fait je veux comparer le string de ma 1ere hashmap avec le 2eme string de la 2eme hasmap.


à présent
je veux verifier si dans ma hashmap1, le nombre de poire et de pommes est bien superieur au nombre  présent dans la hashmap2


Tu seras d'accord que les 2 cahiers de charge ont peu de choses en commun. Retenons le 2ème, donc. Tu veux vérifier que c'est TOUJOURS le cas (i.e. pour CHAQUE fruit) d'avoir un nombre supérieur dans la map imbriquée par rapport au nombre présent dans la hashmap1?

Si c'est le cas (et si, aussi, ta hashmap2 contient uniquement UNE paire key-value, chose que tu n'as pas confirmé), tu pourrais faire ceci:

1. tu fais une extraction de la hashmap imbriquée. Disons qu'elle s'appelle hmap3 (pour brouiller les pistes xD)
2. tu parcours hashmap1 en suivant ses keys. Pour chaque key (qui est un fruit), tu feras donc:
- déterminer sa valeur associée (=le nombre de fruits)
- chercher sa valeur dans hmap3
- comparer les deux valeurs et interrompre la boucle si la condition que tu veux vérifier n'est pas respectée

OKi comme ça?

Reply
réponses:
  • auteur

    merci !!!

    j'ai quasi fini ma fonction sauf qu'à la fin j'ai un char que je voudrais absolument convertir en int mais je crois que c'est impossible non?

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

merci pour ton aide,

pour info j'ai cherché la réponse à ma question pendant 8 heures et comme tout ce que j'ai testé bug, je me suis dit que je pourrai peut être trouver de l'aide sur le forum...

Pour revenir à mon bug, d'après toi je ne suis pas obligée d'utiliser un iterator ? seules les méthodes de Hashmap suffisent?

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

merci :)

j'ai fait ceci mais j'ai une erreur au niveau du string value:
mais je vais essayé ce que tu m'as proposé mais je pense avoir une ancienne version de java donc je sais pas si ca va marché

while (mahashmap != null ) {
for( Iterator ii = mahashmap.keySet().iterator(); ii.hasNext();) {
String key = (String)ii.next();
String value = (String) mahashmap.get(key);

System.out.println("valeur de la cle : "+ key);
System.out.println("valeur de la valeur : "+ value);
}

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Tu as têtre ton erreur car tu n'as pas des String (ou pas uniquement que des String) dans ta Map. Vérifie ce point.

Dans un autre ordre d'idées, pourquoi ton while (mahashmap != null ) ?

Il te faut le JDK 1.5 ou plus récent pour compiler mon bout de code.

Reply
réponses:
  • auteur

    c'est bon j'ai trouvé !!! merci sandul

    j'ai fait : Object val = mahashmap.get(key);

    pour le while, je me suis trompée => j'ai essayé avec if et ça marche!!
    une dernière petite question stp : pour comparer le contenu de deux hashmaps, je peux refaire le même prog en changeant juste le nom de la hashmap puis comparer les variables de clés et de valeurs ?

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

pour comparer le contenu de deux hashmaps, je peux refaire le même prog en changeant juste le nom de la hashmap puis comparer les variables de clés et de valeurs ? <== j'avoue ne pas trop suivre la démarche que tu proposes xD

A la va-vite, je ferais ceci:
- tester l'égalite des size
- tester si hmap1 est incluse dans hmap2
- tester si hmap2 est incluse dans hmap1

L'inclusion de hmap1 dans hmap2 se ferait via le balayage de hmap1 (avec ta boucle) et un test pour voir si la key ainsi que la valeur sont dans hmap2.

++

Reply
réponses:
  • auteur

    en fait dans ma premiere hashmap1 contient <string, int>, ma seconde hashmap contient <String, <String, int>>
    en fait je veux comparer le string de ma 1ere hashmap avec le 2eme string de la 2eme hasmap.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Poste la déclaration exacte de la hashmap2 en syntaxe Java5 ou bien fais une description...

<String, <String, int>>
ne veut rien dire. Les keys sont des String, OK. Mais les valeurs sont des quoi? Les paires <String, int> n'existent pas en tant qu'Object Java...

Reply
réponses:
  • auteur

    en fait ma hashmap contient une autre hashmap

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Ta hashmap contient une seule paire <key, value> ? Ou bien plusieurs ? Dans ce dernier cas, il conviendrait de dire "ma hashmap contient des hashmap comme valeurs". Est-ce bien le cas ? Si oui, décris encore ton test à faire... Tu as UNE hashmap (hashmap1) et une MULTITUDE de hashmaps (les valeurs possibles de hashmap2). Que veux-tu comme comparaison?

Il serait pas mal de faire un tit exemple très simple. Genre

hmap1
<("a", 1), ("b", 2)>

hmap2
??

++

Reply
réponses:
  • auteur

    voici un exemple :

    hashmap1 = {poire=3, sucre=2}

    hashmap2 = {tarte = {poire=1, sucre=1}}

    je veux verifier si dans ma hashmap1, le nombre de poire et de pommes est bien superieur au nombre
    présent dans la hashmap2

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Re,

Si, c'est possible, pourquoi pas... Tu as un char ou un string ?

  char c = '8';  int convertedValue = Character.digit(c, 10);  


ou bien
  String s = "8";  int convertedValue = Integer.valueOf(s).intValue();  


++

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,
Une question comme ça trouve sa réponse dans la javadoc de sun qui est gratuite, ne l'oublions pas

Comme toute collection présentant l'interface Map, il y a une méthode keySet() qui retourne un Set avec les clés, et une méthode values() qui retourne une Collection.
Dans les deux cas, tu peut obtenir un iterator, ou utiliser le mécanisme de for de la version 1.5 pour parcourir ces listes.

L'informatique, ce n'est pas faire que ce qu'on connaît, c'est aussi et surtout explorer ce dont on a besoin, et c'est d'ailleurs ça qui est intéressant.
Cherchez, les gars avant de poser une question, cherchez !

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed