Bonjour à tous,
J'ai un petit soucis avec une ArrayList<Coordinate>. Je définis la classe Coordinate de la façon suivante :
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.
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 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; } }
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 :
Auriez-vous une solution à mon problème ? Suis-je obligé de parcourir toutes la liste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"
Merci d'avance.
Partager