Pour un array, equals est équivalent à == et ne renvoie true que quand les deux arrays sont le même objet. La seule manière de tester l'égalité de valeur entre des arrays est Arrays.equals, et (à ma connaissance) Collection#contains ne se spécialise pas dessus.
Ton code ne renverra jamais true. Même si tu testais table.contains(temp.clone()) ça ne renverrait pas true (cf cas 3 de l'exemple).
Tu peux le tester trivialement en regardant la sortie de
Code :
import java.util.Arrays; class Test { public static void main (String[] args ) { System. out. println("a1 == a2? " + (a1 == a2 )); System. out. println("a1.equals(a2)? " + (a1. equals(a2 ))); System. out. println("a1.equals(a1.clone())? " + (a1. equals(a1. clone()))); System. out. println("equals(a1, a2)? " + Arrays. equals(a1, a2 )); } }
|
Message édité par masklinn le 01-03-2009 à 11:09:36
---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?