Treeset et remove de l'élément en tete de liste qui ne fonctionne pas !
Bonjour,
Je suis sur un petit problème depuis plusieurs heures et cela commence sérieusement à m'énerver.
Voici mon problème, j'ai un treeset d'objet SommetPondere : TreeSet<SommetPondere> liste;
Cette liste doit être trié suivant l'attribut ponderation de la classe SommetPondere. Cette dernière implémente donc Comparable et voici le code du comparTo et equals :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public int compareTo(Object a) {
if(equals(((SommetPondere)a))==true) return 0;
else if(ponderation==((SommetPondere)a).getPonderation() && sommet!=((SommetPondere)a).getSommet()) return 1;
else if(ponderation<((SommetPondere)a).getPonderation()) return -1;
else return 1;
}
public boolean equals(Object a) {
return (((SommetPondere)a).getSommet()==this.sommet && ((SommetPondere)a).getPonderation()==this.ponderation);
} |
La ligne qui ne fonctionne pas est la suivante :
Code:
1 2 3
|
SommetPondere tete = liste.first();
liste.remove(tete); |
En gros je souhaite retirer l'élément en tête de liste.
Lorsque j'effectue un affichage du resultat du compareTo entre l'élément tete et liste.first() il me renvoi 0 (donc éléments égaux). Lorsque je fais pareil avec le equals() il me renvoi true.
Cependant l'élément n'est toujours pas retiré de la liste.
Quelqu'un a déjà eu ce problème ?
Merci d'avance
Louis