Existence d'un objet dans un Vector
Bonjour,
J'ai un petit soucis de comportement de mon Vector<Employe>
Avec la classe Employe suivante (très basique):
Code:
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);
}
} |
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:
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"
} |
Or si je m'en réfère à la JavaDoc, c'est la méthode equals() de Employé qui devrait être appelée non ?
Et cela m'empêche de la même manière d'utiliser d'autre méthodes telles que remove().
Merci !