PB Java avec containsKey

Fermé
artnlyf - 21 mai 2003 à 18:26
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 - 22 mai 2003 à 07:33
j'utilise containsKey sur un TreeMap et cela me fait une ClassCastException. Apparement il ne peut pas comparer.
ArbreFils est donnee membre de la classe Arbre, c'est un TreeMap qui contient un Elemen comme cle et une ArrayList comme attribut. Il Faut p-e un transtypage mais je ne vois pas comment le faire.
Voila la fonction :
public void calculeFils()
{ System.out.println("\nCalcul des fils");
TreeMap aF2 = new TreeMap();
int t = this.size();
for (int i=0; i<t; i++)
{Couple c= new Couple((Couple)this.get(i));
Elemen e1=new Elemen();e1=c.el1;
Elemen e2=new Elemen();e2=c.el2;
System.out.println("av");
if(aF2.containsKey(e1))//<-<-<-<-<---------------------------
{System.out.println("if");
((ArrayList)this.ArbreFils.get(e1)).add(e2);}
else {ArrayList a1 = new ArrayList();a1.add(e2);
aF2.put(e1,a1);}
}
this.ArbreFils = aF2;
}
A voir également:

1 réponse

choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
22 mai 2003 à 07:33
Salut, le problème est le suivant

java ne peut pas comparer les objets de type "Elemen", tu dois donc lui expliquer comment les comparer. Pour ce faire, tu dois créer un objet implémentant l'interface "Comparator" qui permet d'effectuer la comparaison entre les objets "elemen". Ce comparator doit ensuite être envoyé comme argument lorsque tu appelle le constructeur du TreeMap.

voilà, bon courage

Chouba
Casque Bleu forumique
0