La méthode compareTo() [Résolu]

Signaler
Messages postés
43
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
15 mai 2012
-
Messages postés
43
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
15 mai 2012
-
Bonjour a tous,
est ce que qu'un peux m'expliquer le rôle dela méthode compareTo().
je crée une classe Etudiant qui implémente l'interface comparable.
class Etudiant implements comparable <Etudiant>{
private String nom;
private int age;
//constructeur
//getteur et setteurs
public int compareTo(Etudiant E){
return nom.compareTo(E.getNom());}// cette méthode marche iln'a pas un erreur de compilation

mais lorsque
public int compareTo(Etudiant E){
return Age.compareTo(E.getAge());}il m'affiche un erreur
Merci

4 réponses


Bonjour

Tu devrais faire :
public int compareTo(Etudiant e){
    return(age-e.getAge());
}


Pour la méhode Collections.sort(), tu lui passes juste une liste d'étudiants comme ta classe implémente l'interface Comparable :
Collections.sort(listeEtudiants);


Pense à jeter un coup d'oeil dans la documentation Java avant de poser des questions ici :
http://download.oracle.com/javase/6/docs/api/











TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
Hello,

age est un int, c'est un type primitif, il n'a pas la méthode compareTo

faire return age - E.getAge()

Attention à ta facon de coder, les normes imposent que les variables de classe ou de méthodes commencent par une minuscule.

Sinon compareTo sert à trier ces types d'objets dans des listes le plus souvent.

++
Messages postés
43
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
15 mai 2012

ok merci
une petite question SVP est ce que la méthode collection.sort() ressemble a la méthode comparTo() ?
Messages postés
43
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
15 mai 2012

Merci gouessej j'ai bien compris
dorénavant je vais choisir les questions à poser :)