package entreprise; import java.util.*; public class TestEntreprise { public static void main(String[] args) { Entreprise e1 = new Entreprise("IBM"); Entreprise e2 = new Entreprise("Oracle"); e1.engager(new Employe("Dupond", 800)); e1.engager(new Employe("Poiret", 900)); e2.engager(new Employe("Ravier", 750)); e2.engager(new Employe("Burot", 1200)); e2.engager(new Employe("Terrice", 1000)); e2.engager(new Employe("Pernaut", 1150)); System.out.println(e1); System.out.println(e2); List<Employe> l = new ArrayList<>(); for (Employe e : e2) { l.add(e); } // Tri par salaires croissants CompareSalaires comparateur = new CompareSalaires(); l.sort(comparateur); System.out.println("Employés de " + e2.getNom() + " par ordre croissant des salaires"); for (Employe employe : l) { System.out.println(employe.getNom() + " gagne " + employe.getSalaire()); } // Tri par salaires décroissants comparateur.setCroissant(false); l.sort(comparateur); System.out.println("Employés de " + e2.getNom() + " par ordre décroissant des salaires"); for (Employe employe : l) { System.out.println(employe.getNom() + " gagne " + employe.getSalaire()); } // Tri par salaires avec expressions lambda
System.out.println("=================="); l.sort(Comparator.comparing(e -> e.getSalaire()));
// ou bien (voir cours sur expressions lambda pour plus de précisions) // l.sort(Comparator.comparing(Employe::getSalaire));
System.out.println("Tri par salaire croissant :");
System.out.println(l); // Remarquez qu'on est obligé de préciser le type de e // sinon le compilateur considère que le type de e est Object l.sort(Comparator.comparing((Employe e) -> e.getSalaire()).reversed());
// ou bien
// l.sort(Comparator.comparing(Employe::getSalaire).reversed());
System.out.println("Tri par salaire décroissant :");
System.out.println(l); } }