Lambda-Ausdrücke können Variablen zugewiesen und wie Objekte wiederverwendet werden. Weisen Sie am Beispiel der filter () -Methode einer Variablen einen Lambda-Ausdruck zu und verwenden Sie ihn erneut. Aus der folgenden Liste möchte ich nur Zeichenfolgen mit 8 oder mehr Zeichen herausfiltern.
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");
Weisen Sie der Variablen longName einen Lambda-Ausdruck zu, der nur Zeichenfolgen mit 8 oder mehr Zeichen filtert.
final Predicate<String> longName = name -> name.length() >= 8;
Der Lambda-Ausdruck, der derselben Variablen (longName) zugewiesen ist, wird auf die filter () -Ausdrücke in den beiden separaten Listen angewendet, wie unten gezeigt.
//Filter und Ausgabe
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);
Infolgedessen wurde nur eine Zeichenfolge mit 8 oder mehr Zeichen ausgegeben, wie unten gezeigt.
February
September
November
December
amethyst
aquamarine
sardonyx
sapphire
turquoise
Recommended Posts