Ich habe mit Java 8 Lambdas herumgespielt, um Kollektionen einfach zu filtern. Aber ich habe keinen prägnanten Weg gefunden, um das Ergebnis in Form einer neuen Liste im selben Statement abzurufen. Hier ist mein bisher prägnantester Ansatz:
List sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
Beispiele im Netz haben meine Frage nicht beantwortet, weil sie ohne Erzeugung einer neuen Ergebnisliste enden. Es muss einen prägnanteren Weg geben. Ich hätte erwartet, dass die Stream
-Klasse Methoden wie toList()
, toSet()
, ... hat.
Gibt es einen Weg, wie die Variable targetLongList
direkt in der dritten Zeile zugewiesen werden kann?