Voici le code en Python pour construire une liste des IDs de factures dont le titre contient Training, triée par ordre décroissant de montant :
invoice_ids = [i.id for i in
sorted(invoices, key=lambda i: i.amount, reverse=True)
if "Training" in i.title]
Grâce aux streams, on peut maintenant le faire en Java 8 avec le code suivant :
List<Integer> invoiceIds =
invoices.stream()
.filter(inv -> inv.getTitle().contains("Training"))
.sorted(Comparator.comparingDouble(Invoice::getAmount).reversed())
.map(Invoice::getId)
.collect(Collectors.toList());
Non, ce n’est pas une blague, c’est une feature !
Les sources de ces exemples sont disponibles ici en téléchargement.