PB Java avec containsKey
artnlyf
-
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
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;
}
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:
- PB Java avec containsKey
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
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
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