Recherche dans une ArrayList
Bonjour à tous,
J'ai un petit soucis avec une ArrayList<Coordinate>. Je définis la classe Coordinate de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class Coordinate{
public int x;
public int y;
public Coordinate(int i, int j){
x = i;
y = j;
}
public Coordinate(Coordinate c){
x = c.x;
y = c.y;
}
} |
J'ai donc une ArrayList<Coordinate> qu'on appelera "alc". Je souhaite pouvoir savoir rapidement si pour deux entier i et j donnés, il existe dans "alc" un élément "c" tel que, c.x = i et c.y = j.
Je préférerais éviter de parcourir l'ensemble de l'ArrayList pour faire cela (je dois en fait afficher un grand tableau dans une JTable et pour chaque case correspondant à une des coordonnées de l'ArrayList, il y a un traitement spécial). J'ai donc pensé à utiliser la fonction "contains" de la classe ArrayList. Mais comme les références des objets ne sont pas les mêmes mon test me renvoie toujours false :
Code:
1 2 3 4 5 6 7
| Coordinate c1 = new Coordinate(1, 1);
Coordinate c2 = new Coordinate(1, 1);
ArrayList<Coordinate> al = new ArrayList<Coordinate>();
al.add(c1);
System.out.println(al.contains(c2)); // Affiche "false" |
Auriez-vous une solution à mon problème ? Suis-je obligé de parcourir toutes la liste ?
Merci d'avance.