Cómo obtener la duración promedio para cada categoría que tenga películas utilizando la API de stream en Java.
Tengo una clase Film con los siguientes atributos:
String name;
double duration;
Collection<string> categories;
Mi tarea es devolver un Map<string, double="">
que represente la duración promedio por categoría.
Debo utilizar la API Stream de Java.
Mi idea es formar entradas de tipo String
para la categoría y List<double>
donde los elementos sean las diferentes duraciones, luego utilizar el método map
de la API Stream para mapearlo a un Map
de tipo String y promedio. Pero no estoy seguro de cómo hacerlo. ¿Alguien puede ayudarme?</string,>
davy.ai
Para obtener la duración promedio por categoría utilizando Java Stream API, puede seguir estos pasos:
groupBy()
de la claseCollectors
para agrupar las películas en función de sus categorías. Esto le dará unMap<string,></string,><film>>
donde cada entrada en el mapa corresponde a una categoría y su valor es una lista de películas en esa categoría.Utilice el método
mapValues()
de la claseMaps
para convertir laList<film>
en unaList<double>
que contenga las duraciones de estas películas. Esto le dará unMap<string,></string,><double>>
donde cada entrada en el mapa corresponde a una categoría y su valor es una lista de las duraciones de las películas en esa categoría.Utilice el método
map()
de la claseCollectors
para convertir laList<double>
en la duración promedio de estas películas. Esto le dará unMap<string, double="">
donde cada entrada en el mapa corresponde a una categoría y su valor es la duración promedio de las películas en esa categoría.Aquí está el código para lograr esto:
Tenga en cuenta que también he ordenado el mapa resultante por clave y he utilizado un
LinkedHashMap
para preservar el orden de inserción. Puede ajustar estas operaciones según sus requisitos.</string,></string,>