Dans une page précédente, on a défini la classe Banque qui contient un ArrayListe<Compte> nommé listeComptes.
On peut maintenant utiliser la classe Ordre pour ajouter à cette classe une méthode qui trie listeComptes par montant(s) croissants. Rappelons que la classe Compte implémente l'interface utilitaires.Comparable que nous avons définie auparavant, en posant qu'un Compte est "plus grand" qu'un autre si son montant est supérieur.

Voilà cette nouvelle méthode de la classe Banque :

public void trierComptes() {
   Ordre.trier(listeComptes);
}	

Le fichier Banque.java complété

On peut trouver ici deux programme destinés à tester cette nouvelle méthode de la classe complétée :

Remarque : l'API java contient aussi une interface Comparable dans le paquetage java.lang. Cette interface déclare une méthode compareTo qui s'écrit ainsi :

public interface Comparable {
   int compareTo(T t); 
}
On aurait pu choisir d'utiliser cette interface pour que la classe Compte s'écrive ainsi :
package banque;
public class Compte implements Comparable {
	public int compareTo(Compte c) {
		Compte autreCompte = (Compte) c;
		if (this.montant < autreCompte.getMontant()) return -1;
		if (this.montant > autreCompte.getMontant()) return 1;
		return 0;
	}
   ... (Le code de l'ancienne classe Compte)

}
En l'absence de : import utilitaires;, c'est l'interface java.lang.Comparable qui est invoquée dans l'en-tête ci-dessus.

Dans la classe java.util.Collections (du paquetage java.util), on trouve la méthode d'en-tête :

static <T extends Comparable<? super T>> void sort(List<T> list)

Dans la classe Banque, on aurait alors pu écrire, sans définir soi-même une méthode de tri :

public void trierComptes() {
 	java.util.Collections.sort(listeComptes);
}
On utilisera l'interface java.lang.Comparable prévue par l'API plutôt que de redéfinir sa propre interface Comparable et ses propres méthodes de tri.

© Irène Charon Télécom ParisTech 2010