Bonjour,

J'ai un petit soucis de comportement de mon Vector<Employe>
Avec la classe Employe suivante (très basique):

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);
    }
}
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
 
    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 !