[Débutant]interface comparable et methode compareto
Bonjour à tous,
mon problème est le suivant.
j'ai les classes suivantes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class Personne{
String nom;
String prenom;
Personne(){
System.out.println("Nom ? ");
nom = Clavier.lireString();
System.out.println("Prenom ? ");
prenom = Clavier.lireString();
}
Personne( String nom, String prenom){
this.nom = nom;
this.prenom = prenom;
}
public String toString(){
String s = "\nMon nom est "+nom+"\nMon Prenom est "+prenom;
return s;
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
import java.util.Arrays;
public class Etu7 extends Personne implements Comparable{
static int dernierNum=0;
int num;
Etu7(){
num= ++dernierNum;
}
public String toString(){
String s = (super.toString())+ "\nmon numéro est "+num;
return(s);
}
public void affiche(){
System.out.println(this);
}
public int compareTo(Object et){
if(this.num <((Etu7)et).num)
return -1;
else
if(this.num == ((Etu7)et).num)
return 0;
return +1;
}
public static void main(String args[]){
Etu7 tabEt[] = new Etu7[2];
for (int i=0; i<tabEt.length;i++){
tabEt[i]= new Etu7();
}
for (int i=0;i<tabEt.length;i++){
tabEt[i].affiche();
}
Arrays.sort(tabEt);
for (int i=0; i<tabEt.length;i++){
tabEt[i].affiche();
}
}
} |
je dois transformes la classe Etu7 de facon a trier les étudaiants selon l'ordre alphabétique du nom et du prenom au lie de l'ordre croissant des numéros. mais je ne sais pas comment je peux faire si quelqu'un peut me donner un petit coup de main, je serais vraiment reconnaissant.
merci d'avance
Mario
Re: [Débutant]interface comparable et methode compareto
Il te suffit de remplacer :
Code:
1 2 3 4 5 6 7 8 9
|
public int compareTo(Object et){
if(this.num <((Etu7)et).num)
return -1;
else
if(this.num == ((Etu7)et).num)
return 0;
return +1;
} |
par :
Code:
1 2 3 4 5 6 7 8
|
public int compareTo(Object et){
if(this.nom.compareTo(((Etu7)et).nom) != 0) {
return this.nom.compareTo(((Etu7)et).nom);
}else{
return this.prenom.compareTo(((Etu7)et).prenom);
}
} |