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
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody