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