yo tengo una clase asi
public class Example { private List<Integer> ids; public getIds() { return this.ids; } }Si tengo una lista de objetos de esta clase como esta
List<Example> examples;¿Cómo podría mapear las listas de identificación de todos los ejemplos en una sola lista? Intenté así:
List<Integer> concat = examples.stream().map(Example::getIds).collect(Collectors.toList()); pero obteniendo un error con Collectors.toList()
¿Cuál sería la forma correcta de lograr esto con la API de flujo de Java 8?
Usar flatMap :
List<Integer> concat = examples.stream() .flatMap(e -> e.getIds().stream()) .collect(Collectors.toList());Otra solución mediante el uso de la expresión de referencia del método en lugar de la expresión lambda:
List<Integer> concat = examples.stream() .map(Example::getIds) .flatMap(List::stream) .collect(Collectors.toList());