SylvainITIN2004
Ville : ANGERS
Membre depuis : 19 oct. 2005
Messages : 11
|
8 nov. 2005 à 16:33
Bonjour manu,
Je suis à la page 137-138. Donc dans cette parti on parle d'implémenter l'interface Comparable. C'est la classse EvenementCalendrier qui implémente Comparable.
La redéfinition de la méthode compareTo ne pose pas trop de problème, même s'il me serait difficile de refaire sans le modèle.
Dans la classe Agenda on remplit un TreeSet.
Et on affiche un objet de type Iterator.
Ce que je ne comprend pas c comment intervient compareTo pour trier mes occurences de dates.
Est ce qu'il le fait direct quand je fait agenda.add(monEvenement)?
Je ne comprend pas trop le fonctionnement.
compareTo compare deux élement. Comment il peut intervenir ici vu qu'on a plusieurs élements. Par exemple je rentre une premiere date d1 suivi d'une deuxième date d2. Bon beh la je peux imaginer qu'avant de remplir mon arbre on vérifie que d1<d2 et on ordonne en fonction. Mais pour ce qui est de la 3eme date comment on trouve ca place.
A moins que dans le treeset on un couple entier objet, et on se sert de l'entier retourner par le compareTo pour ordonner les éléments dans l'arbre. On utilise ainsi les propriété d'un arbre binaire. Dans ce cas on a le classement grace a l'arbre.
Est ce que c possible?
Je suis désolé si je fais a moitié les questions et les réponses mais j'ai besoin de savoir si mon raisonnement tien la route. En plus si c bon ca vous donne moins de boulot en réponse.LOL ;-)
A bientot
--- Vive JAVA!!!
|
Manu
Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
|
11 nov. 2005 à 00:11
> Ce que je ne comprend pas c comment intervient compareTo pour trier mes occurences de dates.
> Est ce qu'il le fait direct quand je fait agenda.add(monEvenement)?
Oui, une instance de TreeSet trie ses éléments à chaque ajout ou suppression.
> Mais pour ce qui est de la 3eme date comment on trouve ca place.
Comme vous le suggérez, le TreeSet compare deux à deux chaque élément déjà stocké avec celui en cours d'ajout grâce aux valeurs retournées par la méthode compareTo, afin de déterminer sa place dans l'ensemble. Vu que les éléments sont dans un arbre binaire, il n'a d'ailleurs probablement pas besoin de comparer l'élément ajouté avec tous les éléments.
Vu que finalement c'est l'implémentation de la classe TreeSet qui vous intéresse, pourquoi ne regardez-vous pas le code source de cette classe, puisqu'il est disponible dans le fichier src.zip du JDK ?
> Je suis désolé si je fais a moitié les questions et les réponses mais j'ai besoin de savoir si mon raisonnement tien la route.
Pas de problème :-) --- Manu (moderator/modérateur)
|