Les expressions Lambda peuvent être affectées à des variables et réutilisées comme des objets. En utilisant la méthode filter () comme exemple, assignez une expression lambda à une variable et réutilisez-la. Dans la liste ci-dessous, je voudrais filtrer uniquement les chaînes de 8 caractères ou plus.
final List<String> months =
Arrays.asList("January", "February", "March", "April", "May", "June", "July", "Augast", "September", "October", "November", "December");
final List<String> jewelries =
Arrays.asList("garnet", "amethyst", "aquamarine", "diamond", "emerald", "pearl", "ruby", "sardonyx", "sapphire", "opal", "topaz", "turquoise");
Attribuez une expression lambda à la variable longName qui filtre uniquement les chaînes de 8 caractères ou plus.
final Predicate<String> longName = name -> name.length() >= 8;
L'expression lambda affectée à la même variable (longName) est appliquée aux expressions filter () dans les deux listes distinctes comme indiqué ci-dessous.
//Filtre et sortie
final List<String> longNameMonths = months.stream().filter(longName).collect(Collectors.toList());
final List<String> longNameJewelries = jewelries.stream().filter(longName).collect(Collectors.toList());
longNameMonths.forEach(System.out::println);
longNameJewelries.forEach(System.out::println);
Par conséquent, seule la chaîne de caractères de 8 caractères ou plus a été sortie comme indiqué ci-dessous.
February
September
November
December
amethyst
aquamarine
sardonyx
sapphire
turquoise
Recommended Posts