La methode contains de vector marche mal
Bonjour, je voudrais savoir si l'object processusMere qui est un object de la collection histoProcessSysteme est contenue dans la collection processusSystemes(Vector<ProcessusSysteme>) cela fonctionne correctement que pendant les 2 premieres iterations alors que les 2 vectors contienne les mêmes données, je pense que sa vient de l'heritage et de la methode equals mais je trouve pas la solution.
Merci de votre aide.
histoProcessSysteme
0:0
4:0
1284:856
1540:856
5124:4940
6916:1008
7176:1008
2056:1008
8200:9500
processusSystemes
0:0
4:0
1284:856
1540:856
5124:4940
6916:1008
7176:1008
2056:1008
8200:9500
Code:
1 2 3 4 5 6 7 8
| for (int i = 0; i < histoProcessSysteme.size(); i++) {
ProcessusMere processusMere = histoProcessSysteme.get(i).getProcessusMere();
if (processusSystemes.contains(processusMere)) {
processusSystemes.remove(processusMere);
} else {
//
}
} |
Code:
1 2 3 4 5 6 7 8 9 10
| public class ProcessusSysteme extends ProcessusMere{
public ProcessusSysteme(Integer pid, Integer ppid) {
super(pid, ppid);
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public class ProcessusMere{
protected Integer pid;
protected Integer ppid;
public ProcessusMere(Integer pid, Integer ppid) {
this.pid = pid;
this.ppid = ppid;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public Integer getPpid() {
return ppid;
}
public void setPpid(Integer ppid) {
this.ppid = ppid;
}
@Override
public boolean equals(Object obj) {
ProcessusMere processusMere =(ProcessusMere)obj;
return this.pid==processusMere.getPid();
}
} |