/** * Fichier Comparable2.java (une réflexion sur Comparable1.java) * * Devrait-on "programmer soi-même" le tri ? * * */ import java.util.*; class Employe implements Comparable { private String NAS; private double salHebdo; public Employe(String NAS, double salHebdo) { this.NAS = NAS; ; this.salHebdo = salHebdo; } public Employe(String NAS, double nbHr, double tauxHoraire) { this(NAS, nbHr * tauxHoraire); } public String toString() { return NAS + " " + salHebdo + "$"; } public int compareTo(Employe autre) { return NAS.compareTo(autre.NAS); } } public class Comparable2 { public static void main (String[] args) { Vector emp = new Vector(); emp.add ( new Employe("123 456 789", 1234.56) ); emp.add ( new Employe("222 111 333", 987.65) ); emp.add ( new Employe("181 543 234", 40, 28.50)); System.out.println("Les employes du vecteur au debut:\n" + emp); System.out.println("Numero d'ass. sociale le plus petit : " + Collections.min(emp)); System.out.println("Numero d'ass. sociale le plus grand : " + Collections.max(emp)); Collections.sort(emp); System.out.println("Les employes du vecteur apres le tri:\n" + emp); Employe aChercher = new Employe("222 111 333", 0.0); int k = Collections.binarySearch(emp, aChercher); System.out.printf("l'indice k vaut %d\n", k); aChercher = new Employe("170 456 987", 0); k = Collections.binarySearch(emp, aChercher); System.out.printf("l'indice k vaut %d\n", k); } } /* Exécution: --------------------Configuration: -------------------- Les employes du vecteur au debut: [123 456 789 1234.56$, 222 111 333 987.65$, 181 543 234 1140.0$] Numero d'ass. sociale le plus petit : 123 456 789 1234.56$ Numero d'ass. sociale le plus grand : 222 111 333 987.65$ Les employes du vecteur apres le tri: [123 456 789 1234.56$, 181 543 234 1140.0$, 222 111 333 987.65$] l'indice k vaut 2 l'indice k vaut -2 Process completed. */