Bonjour,
J'ai un petit soucis de comportement de mon Vector<Employe>
Avec la classe Employe suivante (très basique):
Le soucis, c'est que j'ai dans mon vecteur une dizaine d'employé de numéro distinct, dont l'un est le numéro 7800 à la position 1 par exemple. Lorsque je fais cela:
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
17
18
19 public class Employe { public int numero; public String nom; public Employe(int numero) { this(numero, ""); } public Employe(int numero, String nom) { this.numero = numero; this.nom = nom; } // Deux employés sont égaux s'ils ont le même numéro public boolean equals(Employe employe) { return (employe.numero == this.numero); } }
Or si je m'en réfère à la JavaDoc, c'est la méthode equals() de Employé qui devrait être appelée non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Vector<Employe> emp = new Vector<Employe>(); emp.add( new Employe(4400, "Paul") ); emp.add( new Employe(7800, "Martin") ); Employe employe = new Employe(7800); System.out.println( (emp.get(1).equals(employe))? "Oui" : "Non" ); // Ecrit "Oui" System.out.println( (emp.contains(employe))? "Oui" : "Non" ); // Ecrit "Non" }
Et cela m'empêche de la même manière d'utiliser d'autre méthodes telles que remove().
Merci !
Partager