Nous appelerons Comparable tout objet d'une classe qui implémente l'interface Comparable. Si un objet est Comparable, cela signifie que dans sa classe la méthode compareTo a été implémentée, et donc que cet objet dispose de la méthode compareTo.
On décide maintenant de définir des méthodes qui puissent s'appliquer à des Comparable(s).
On définit une première méthode, la méthode plusGrand, qui reçoit deux Comparable(s) et retourne le plus grand des deux.
On définit ensuite une méthode nommée trier servant à trier un tableau de Comparable(s)
On définit enfin une méthode nommée aussi trier servant à trier un Arraylist de Comparable(s).
Les méthodes trier utilisent ici un tri par insertion.
package utilitaires;
import java.util.ArrayList;
public class Ordre {
public static Comparable plusGrand(Comparable c1,Comparable c2) {
if (c1.comparerA(c2) == 1) return c1;
else return c2;
}
public static void trier(Comparable[] tableau) {
int i, j;
Comparable cle;
for (i = 1; i < tableau.length; i++) {
cle = tableau[i];
j = i;
while((j >= 1) && (cle.comparerA(tableau[j - 1]) == -1)) {
tableau[j] = tableau[j - 1];
j = j - 1;
}
tableau[j] = cle;
}
}
public static <T extends Comparable> void trier(ArrayList<T> liste) {
int i, j;
T cle;
for (i = 1; i < liste.size(); i++) {
cle = liste.get(i);
j = i;
while((j >= 1) && (cle.comparerA(liste.get(j - 1)) == -1)) {
liste.set(j, liste.get(j - 1));
j = j - 1;
}
liste.set(j, cle);
};
}
}
© Irène Charon Télécom ParisTech 2010