Estaba jugando con Java 8 lambdas para filtrar fácilmente las colecciones. Pero no encontré una forma concisa de recuperar el resultado como una nueva lista dentro de la misma declaración. Aquí está mi enfoque más conciso hasta ahora:
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
Los ejemplos en la red no respondieron a mi pregunta porque se detienen sin generar una nueva lista de resultados. Debe haber una manera más concisa. Lo que habría esperado, que la Stream
clase tiene métodos como toList()
, toSet()
...
¿Hay alguna manera de que las variables targetLongList
puedan ser asignadas directamente por la tercera línea?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongList
esCollection.removeIf(…)
conveniente.