Utilisation de l'interface Comparable et surcharge de methode
Voici mon probleme :
D'abord voici une fonction qui permet de faire un tri de tableau d'entiers.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public static void bubbleSort(int[] x)
{
int n = x.length;
boolean doMore = true;
while (doMore)
{
n--;
doMore = false; // assume this is our last pass over the array
for (int i=0; i<n; i++) {
if (x[i] > x[i+1]) {
int temp = x[i]; x[i] = x[i+1]; x[i+1] = temp;
doMore = true;
}
}
}
} |
Le probleme est le suivant, je dois changer ma fonction de tri avec la signature suivante :
public static void bubbleSort(Comparable[] x)
Car mon but est de pouvoir trier des personnes dont voici la classe :
(Les personnes seront tries sur leur nom et leur prenom.)
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 38 39 40 41 42 43
|
class Personne
{
private String prenom;
private String nom;
private int age;
public int getValue()
{
return age;
}
public String getPrenom()
{
return prenom;
}
public void setPrenom(String prenom)
{
this.prenom = prenom;
}
public String getNom()
{
return nom;
}
public void setNom(String nom)
{
this.nom = nom;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
} |
J'avais tout de suite pense a faire une surcharge d'operateur. Mais en java je n'ai pas cette possibilite.
J'ai l'idee que la classe Personne herite de la classe Comparable pour pouvoir utiliser ma fonction de tri.
Je cherche une solution pour adapter ma classe Personne et Element afin de ne pas avoir a modifier ma fonction de tri.