Bonjour,
je bloque sur un algo qui me génère une boucle infinie sans que je sache vraiment pourquoi.
Je dispose de 2 maps :
L'algo est le suivant (qui m'a pourtant l'air simple) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Map<String, String> map1 = new HashMap<String, String>(); map1.put("key_0" , "value_0"); map1.put("key_1" , "value_1"); map1.put("key_2" , "value_2"); Map<String, String> map2 = new HashMap<String, String>(); map2.put("key_0" , "value_00"); map2.put("key_1" , "value_01"); map2.put("key_2" , "value_02");
- je parcours map1 et pour chaque élement de map1, je regarde sa clé et je vérifie si cette clé est présente dans map2. Je parcours donc map2 pour chaque élément de map1 et j'effectue un test sur la clé.
Ce code boucle donc sans fin. Si quelqu'un pouvait m'expliquer pourquoi et ce qu'il faudrait faire pour régler le pb, je lui en serai bien reconnaissant !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for (Iterator<String> imap1 = map1.keySet().iterator() ; imap1.hasNext() ; ){ String keyMap1 = (String) imap1.next(); System.out.println("key = " + keyMap1 + " value = " + map1.get(keyMap1)); for (Iterator<String> imap2 = map2.keySet().iterator() ; imap2.hasNext() ; ){ if (map2.containsKey(keyMap1)) { System.out.println("map2 contient bien la clé suivante de map1 : " + keyMap1); } else { System.out.println("map2 ne contient pas la clé suivante de map1 : " + keyMap1); } } }
Merci
Partager