Bonjour a tous
Je suis face a une incoherence assez bluffante et j aimerai vous demander votre avis.
Voici le code :
C est assez simple, je teste l egalite de deux Map.
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 public static boolean mapEgal(Map<MultiKey,Float> m1,Map<MultiKey,Float> m2){ boolean f = true; List<MultiKey> l1 = new ArrayList<MultiKey>(m1.keySet()); List<MultiKey> l2 = new ArrayList<MultiKey>(m2.keySet()); if (!l1.equals(l2)){ f = false; System.out.println(f); return f; }else{ int i=0; while ((Egal(m1.get(l1.get(i)), m2.get(l1.get(i)))&&i<l1.size())){ i++; } if (i==l1.size()){ if (!Egal(m1.get(l1.get(i)), m2.get(l1.get(i)))){ f = false; } }else{ f = false; } } return f; }
Dabord des cle (Multikeys en l occurence), si les cle sont identiques alors je teste les valeurs une par une (grace a une methode Egal qui marche tres bien) et je sort des qu une valeur est differente.Rien d extraordinaire.
La methode fonctionne apparemant bien, mais...je me suis rendu compte en phase de debug, que lorsque je suis dans ma boucle while, une fois sortis de celle ci, plus rien. Impossible de printer quelque chose, que ce soit le return ou un autre print n importe ou dans le reste de la methode, une fois le while termine, c est comme si je sortais completement de la methode.
Une idee ?!?
Partager