Arraylist: .Contains ne fonctionne pas ?? - Java - Programmation
Marsh Posté le 01-03-2009 à 11:08:13
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 :
|
Marsh Posté le 01-03-2009 à 00:09:41
Bonjour,
J'ai une ArrayList dont les éléments sont un "tableau de String".
J'arrive à remplir ma liste mais pourquoi la méthode contains ne fonctionne pas ??
{
List<String[]> table = new ArrayList<String[]>();
String [] temp = new String [3]; //Je remplit mon tableau temp
temp[0]="A";
temp[1]="B";
temp[2]="C";
table.add(temp); // Je l'ajoute à ma liste
String [] temp2 = new String [3]; //Je remplit mon tableau temp2 avec les mêmes éléments que temp
temp2[0]="A";
temp2[1]="B";
temp2[2]="C";
boolean existe =false;
existe =table.contains(temp) ; /ici, contains retourne true
existe =table.contains(temp2) ; /ici, contains retourne False alors que les éléments "A"B"C" ont déja été ajouté !! Pourquoi ???
}
Merci