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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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