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 :
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");
L'algo est le suivant (qui m'a pourtant l'air simple) :
- 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é.

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);
				}	
			}
		}
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 !!

Merci