Mapear una lista a un DTO dentro de un mapa – java
Tengo una colección como esta: Map<Integer, List<MyObject>> collection
Me gustaría mapear toda la lista de MyObject
a MyObjectDTO
y devolver el mapa completo con la lista mapeada.
Entonces, el resultado sería:
Map<Integer, List<MyObjectDto>> collectionWithDtos
¿Cuál es la manera más fácil y rápida? He probado con algunos métodos usando streams, pero ninguno de ellos me dio los resultados que esperaba.
Gracias
davy.ai
Una forma de lograr este mapeo es utilizando el método
stream()
deMap
y para cada entrada, mapear suList<myobject>
a unaList<myobjectdto>
utilizando el métodomap()
deStream
. Luego, utilizar el métodocollect()
para recolectar las entradas mapeadas en un nuevoMap
. Aquí está el código:Este código crea un nuevo
Map<integer,></integer,><myobjectdto>>
donde cada entrada tiene la misma clave que la colección original, pero su valor es unaList<myobjectdto>
mapeada en lugar de laList<myobject>
original. Los objetosMyObjectDTO
se crean utilizando la palabra clavenew
y un constructor asumido que toma un parámetroMyObject
.